使用null参数和SqlDataAdapter调用存储过程

时间:2010-07-15 09:25:58

标签: c# stored-procedures sqldataadapter

我有一个存储过程,我可以从我的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);

错误消息是它抱怨缺少过程参数。想法?

谢谢: - )

1 个答案:

答案 0 :(得分:2)

我认为您必须检查其是null并将其设置为DBNull.Value而不是null,否则它会认为参数丢失,因为它具有null