1

無料のテーブルMy_Table1があります。My_Table1iaは次のフィールドを持っています

Field-Name  ->  sl_no Integer - Width 4

したがって、C#からOleDbを介して挿入すると、次のようなエラーが発生します。

"Data Type Mismatch"

そして私のOleDbCommandは

int a1 = 3;

OleDbCommand OleCmd1 = new System.Data.OleDb.OleDbCommand("Insert into My_Table1 values('"+a1+"')", OleCon1)

ヘルプをありがとう

4

1 に答える 1

1

INSERT ステートメントは文字値を挿入しています'a1'。これは整数フィールドには格納できません。がコード内の変数である場合a1、これを探している可能性があります。

System.Data.OleDb.OleDbCommand("Insert into My_Table1 values("+a1.ToString()+")", OleCon1)

「ベスト プラクティス」の観点からは、SQL インジェクション攻撃の問題を回避する習慣を身につけるために、パラメーター化されたクエリを使用することをお勧めします。整数値の場合、上記のステートメントはおそらく問題ありませんが、単純な連結を使用して SQL ステートメントを作成することに慣れるのは一般的には良いことではありません。

于 2012-10-02T16:08:23.100 に答える