我有一个存储过程,我可以从我的C#代码中获取。我传递了一些我首先放入HashTable的参数。它看起来像是:
paramname1 value1
paramname2 value2
paramname3 value3
任何值都可以是 null 。所以现在我将通过该哈希并将params添加到适配器:
foreach (DictionaryEntry entry in myHash)
{
adapter.SelectCommand.Parameters.AddWithValue(entry.Key.ToString(), entry.Value);
}
这样可行,但是当我尝试填充DataSet时,它会失败:
DataSet reportDataSet = new DataSet();
adapter.Fill(reportDataSet);
错误消息是它抱怨缺少过程参数。想法?
谢谢: - )
答案 0 :(得分:2)
我认为您必须检查其是null
并将其设置为DBNull.Value
而不是null
,否则它会认为参数丢失,因为它具有null
值