[英]SQLException The parameterized query ### which was not supplied
我搜索了该站点以及其他站点,以了解并摆脱此异常。 很多答案,但是我找不到“我错了”的地方。 这是我的例外:
参数化查询'(@listenr int,@ stregko nvarchar(4000))SELECT * FROMIndkøbsliste'期望参数'@stregko'未提供。
这是我的代码。
public Indkøbsliste findIndkøbslisteStregkode(string stregko, int listenr)
{
Indkøbsliste inl = new Indkøbsliste();
SqlConnection myCon = DBcon.getInstance().conn();
myCon.Open();
string query = "SELECT * FROM Indkøbsliste WHERE Stregkode = @stregko AND ListeNr = @listenr";
SqlCommand com = new SqlCommand(query, myCon);
com.Parameters.Add("@stregko", System.Data.SqlDbType.VarChar).Value = stregko;
com.Parameters.Add("@listenr", System.Data.SqlDbType.Int).Value = listenr;
SqlDataReader dr = com.ExecuteReader();
if (dr.Read())
{
inl.ListeNr = dr.GetInt32(1);
inl.Stregkode = dr.GetString(2);
inl.Navn = dr.GetString(3);
inl.Antal = dr.GetInt32(4);
inl.Pris = dr.GetDecimal(5);
}
myCon.Close();
return inl;
}
利用AddWithValue
方法
com.Parameters.AddWithValue("@stregko", stregko);
or
com.Parameters.Add("@stregko", SqlDbType.NVarChar, 50).Value = stregko;
or
SqlParameter parameter = new SqlParameter("@stregko", SqlDbType.NVarChar, 50);
parameter.Value = stregko;
com.Parameters.Add(parameter);
而不是
com.Parameters.Add("@stregko", System.Data.SqlDbType.VarChar).Value = stregko;
SQL查询需要stregko
的Unicode字符串,但是您提供了非Unicode字符串。
尝试更改您的c#代码以分配参数,如下所示:
com.Parameters.Add("@stregko", System.Data.SqlDbType.NVarChar).Value = stregko;
注意NVarChar中的“ N”!
您的SQL参数是nvarchar
尝试在C#代码中使用System.Data.SqlDbType.NVarChar
。
从错误消息中开始,尝试更改:
com.Parameters.Add("@stregko", System.Data.SqlDbType.VarChar)
与
com.Parameters.Add("@stregko", System.Data.SqlDbType.NVarChar)
您需要指定大小。
com.Parameters.Add("@stregko", System.Data.SqlDbType.NVarChar,50).Value = stregko;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.