1

次の形式のSQLクエリがあります。

Update TableName Set TaskStatus=xxx where TaskID=xx;

このSQLクエリがC#コードに含まれています。

ExcelファイルのBセルの下に、拒否、完了、終了などの一連のステートメントがあります。私のC#コードはそれらのセルを読み取り、適切なアクションを実行します。たとえば、「完了」と表示されている場合、次のクエリが実行されます。

Update TableName Set TaskStatus=Completed where TaskID=xx;

私の問題は、セル内の値が「完了できません」になっていることです。私のコードがこのセルを読み取り、これをクエリにマージすると、

 Update TableName Set TaskStatus=Can't Complete where TaskID=xx;

「引用符を閉じる必要があります」というエラーがスローされます。これは、「できない」の引用符をSQLキーワードまたはSQL引用符として想定しています。どうすればこれを乗り越えることができますか?

4

2 に答える 2

3

パラメータ化されたSQLコマンドを使用するAFAIKはこの問題を解決し、sincsSqlParameterオブジェクトはこれらの状況であなたに代わってexcapingを行います。あなたのコードでこのような何かがあなたの問題を解決するはずです:

string sql = "Update TableName Set TaskStatus=@status where TaskID=@id;";
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = sql;
cmd.Parameters.AddWithValue("status", status_excel_call_value);
cmd.Parameters.AddWithValue("id", your_task_id);

cmd.ExecuteNonQuery();
于 2012-07-09T11:34:25.160 に答える
1

に置き換えることができ'ます''。引用符はテキストを定義するため、コードは開きますが、。を挿入してテキスト「area」を閉じませんCan't

于 2012-07-09T11:34:12.070 に答える