【发布时间】:2016-04-27 17:46:49
【问题描述】:
刚刚发现了一些奇怪的东西, 如果我为这样的命令编写 SQL 语句:
command.CommandText = "UPDATE LoginTbl SET PW = @pw WHERE TwyID = @twyID";
command.Parameters.AddWithValue("@pw", pw_txt.Text);
command.Parameters.AddWithValue("@twyID", TwyID.ToString());
command.ExecuteNonQuery();
SQL 命令将运行而不会引发异常,但它根本不会更新数据库。 奇怪的是,如果我写的命令不带参数:
command.CommandText = "UPDATE LoginTbl SET PW = '"+pw_txt.Text+ "' WHERE TwyID = '"+TwyID.ToString()+"'";
command.ExecuteNonQuery();
SQL 命令运行完美,但这次它实际上更新了数据库!
这让我有些困惑,因为我非常习惯在大多数 SQL 命令中使用参数。
想知道是否有人知道为什么 UPDATE 语句特别不接受 OleDbParameters 枚举器。
谢谢, 利亚姆
【问题讨论】:
-
不管是什么原因,我都讨厌用非标准的方法解决这个问题;出于各种安全原因,您不应使用这样的 SQL 查询;
-
各位,我知道我不应该像在第二个示例中那样使用 SQL 查询,我只是给出了一个可行的示例。我通常总是在我的命令中添加参数但是在这个问题中我概述了由于某种原因你不能并且想知道为什么! @techspider