日志含义将参数值string转换为IEnumerable失败

本文关键字:转换 IEnumerable 失败 string 参数 日志 | 更新日期: 2023-09-27 18:19:13

我有一本字典。我只是想抓住钥匙,用它们来更新数据库。

foreach (string key in dt.Keys)
{
    var param = comm.Parameters.AddWithValue("@_AccountList", key);
    var paddingParam = comm.Parameters.AddWithValue("@padding", padding);
    var dateStartParam = comm.Parameters.AddWithValue("@proc_dateStart", startDate);
    var dateEndParam = comm.Parameters.AddWithValue("@proc_dateEnd", endDate);
    //table valued parameters
    param.SqlDbType = SqlDbType.Structured;
    var reader = comm.ExecuteNonQuery();
}

我的存储过程中的数据类型是varchar,应该可以工作。我不确定它为什么要将我的键转换为IEnumerable。它是否与使用表值参数有关?

日志含义将参数值string转换为IEnumerable失败

您的param变量持有NVarChar类型的参数(隐式地),因为key是一个字符串,但是由于某种原因,您将其类型设置为SqlDbType.Structured。因此,数据提供程序尝试遍历该值,但不能,因为该值只是string类型。