【发布时间】:2015-04-17 02:41:48
【问题描述】:
由于某种原因,在定义我的变量后,我仍然收到“必须声明标量变量”错误..
using (OleDbConnection conn = new OleDbConnection(connString))
{
conn.Open();
using(OleDbCommand cmd = new OleDbCommand("SELECT UserID FROM tblUser WHERE Username=@user AND Password = @pass", conn))
{
cmd.Parameters.AddWithValue("@user", user);
cmd.Parameters.AddWithValue("@pass", pass);
int UserID = (int)cmd.ExecuteScalar();
return UserID < 0 ? -1 : UserID;
}
}
【问题讨论】:
-
我得到的异常是:+ $exception {"必须声明标量变量\"@user\"。"} System.Exception {System.Data.OleDb.OleDbException}
-
用户或通行证是否为空?如果是,您可以尝试传入 DBNull.Value。
-
我已经检查了这些值,它们不为空。
-
您应该查看Can we stop using AddWithValue() already? 并停止使用
.AddWithValue()- 它可能会导致意想不到和令人惊讶的结果... -
如果您连接到 SQL Server,您应该使用
SqlConnection和SqlCommand- 然后您可以使用 named 参数。OleDbCommand仅支持未命名的位置?参数 ....
标签: c# sql .net sql-server