「抽出条件式でのデータ型の不一致」を与える私は、次のコードを持っている:cmd_operの第2の変形(コードの先頭にコメントしていない1)で更新コマンドは
/*
// it works
cmd_oper = "UPDATE [Model Elements] SET [Record Status] = \"Disabled\" WHERE [Index] = @db_idx";
/*/
// it doesn't work
cmd_oper = "UPDATE [Model Elements] SET [Record Status] = @stat WHERE [Index] = @db_idx";
//*/
using(OleDbCommand cmd = new OleDbCommand(cmd_oper, svr_conn))
{
cmd.Parameters.Add("@db_idx", OleDbType.Integer).Value = 2;
//cmd.Parameters.Add("@stat", OleDbType.VarChar).Value = "Disabled";
cmd.Parameters.AddWithValue("@stat", "Disabled");
cmd.ExecuteNonQuery();
}
を私は "取得「条件式のデータ型の不一致」。もう1つは動作します。レコード状態列のタイプは、データベース内で「ショートテキスト」として設定されます。私はStackOverflowにこのエラーに関連する多くの投稿があることを知っていますが、私は正確なフィットを見つけることができませんでした。ありがとう。
oledbを使用すると、SQLステートメントに表示される順序でパラメータを提供する必要があります。 –
パラメータにvarcharの長さを追加する必要があります:cmd.Parameters.Add( "@stat"、OleDbType.VarChar、100)。値= "無効"; –
@mh__いいえ、それは必要ではありませんが、より良いが必要ではありません – Steve