我收到此错误:
System.ArgumentException HResult = 0x80070057消息=没有映射 存在于对象类型 System.Collections.Generic.List`1 [[System.Data.SqlClient.SqlParameter, System.Data,版本= 4.0.0.0,文化=中性, PublicKeyToken = b77a5c561934e089]]到本地的已知托管提供程序 类型。 Source = <无法评估异常源>
我已经用谷歌搜索了,这些示例是有人尝试使用对象而不是SqlParameter
值的文本值。就像,他们尝试使用someControl
而不是someControl.Text
。就我而言,下面的toStatus
和fromStatus
已经是字符串。我不确定还有什么问题。我想念什么?
public void UpdateStatus(SearchCriteria searchCriteria, string fromStatus, string toStatus)
{
var sql = new StringBuilder();
var sqlParameters = new List<SqlParameter>();
sql.Append("UPDATE Schema.Table SET Status = @toStatus WHERE Status = @fromStatus");
sqlParameters.Add(new SqlParameter("@toStatus", toStatus) { SqlDbType = SqlDbType.VarChar });
sqlParameters.Add(new SqlParameter("@fromStatus", fromStatus) { SqlDbType = SqlDbType.VarChar });
db.ExecuteSqlCommand(sql.ToString(), sqlParameters);
}
答案 0 :(得分:2)
ExecuteSqlCommand
需要一个数组,而不是List
。
用途如下
db.ExecuteSqlCommand(sql.ToString(), sqlParameters.ToArray());