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

C# 使用null参数和SqlDataAdapter调用存储过程,c#,stored-procedures,sqldataadapter,C#,Stored Procedures,Sqldataadapter,我有一个存储过程,我不能从我的C#代码中找到它。我正在传递一些参数,这些参数是我首先放在哈希表中的。看起来是这样的: 参数名称1值1 参数名称2值2 paramname3值3 任何值都可以是null。现在我将遍历该散列并将参数添加到适配器: foreach (DictionaryEntry entry in myHash) { adapter.SelectCommand.Parameters.AddWithValue(entry.Key.ToString(), entry.Value);

我有一个存储过程,我不能从我的C#代码中找到它。我正在传递一些参数,这些参数是我首先放在哈希表中的。看起来是这样的:

参数名称1值1
参数名称2值2
paramname3值3

任何值都可以是null。现在我将遍历该散列并将参数添加到适配器:

foreach (DictionaryEntry entry in myHash)
{
    adapter.SelectCommand.Parameters.AddWithValue(entry.Key.ToString(), entry.Value);
}
这是可行的,但当我尝试填充数据集时,它失败了:

DataSet reportDataSet = new DataSet();
adapter.Fill(reportDataSet);
错误消息是它抱怨缺少过程参数。想法


谢谢:-)

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

我认为您必须检查它的
null
并将其设置为
DBNull.Value
null
否则它认为参数丢失,因为它有一个
null
值。

请描述存储过程声明。请描述存储过程声明。