[英]sql parameterized query in C# with string
com = new SqlCommand("SELECT pro_name from products where pro_name= @idP", con);
SqlParameter param = new SqlParameter
{
ParameterName = "@idP",
Value = proNames[i]
};
com.Parameters.Add(param);
它在整數類型下工作正常,但對於字符串不起作用,則給出錯誤
System.Data.SqlClient.SqlException: 'The parameterized query '(@idP nvarchar(4000))SELECT pro_name from products where pro_nam' expects the parameter '@idP', which was not supplied.'
嘗試傳遞適當的DBType
。 在您的情況下,這將是NVarChar
確保proNames[i]
值為,而不為Null
或EmptyString
SqlParameter param = new SqlParameter()
{
ParameterName = "@idP",
SqlDbType = SqlDbType.NVarChar, // your DBType
Value = proNames[i]
};
您也可以嘗試如下添加參數:
command.Parameters.AddWithValue("@idP", proNames[i]);
如果是VAR *類型,則應設置SqlDbType和Size。
SqlParameter param = new SqlParameter()
{
ParameterName = "@idP",
SqlDbType = SqlDbType.VarChar,
Size = 4000,
Value = proNames[i]
};
順便說一句,如果您想傳遞NULL,則必須使用DbNull.Value
而不是普通的C#NULL。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.