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

Posted

技术标签:

【中文标题】使用空参数和 SqlDataAdapter 调用存储过程【英文标题】:Calling a stored procedure with null parameters and SqlDataAdapter 【发布时间】:2010-07-15 09:25:57 【问题描述】:

我有一个可以从我的 C# 代码中获取的存储过程。我正在传递一些我首先放入 HashTable 的参数。看起来是这样的:

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

任何值都可以是null。所以现在我正在处理该哈希并将参数添加到适配器:

foreach (DictionaryEntry entry in myHash)

    adapter.SelectCommand.Parameters.AddWithValue(entry.Key.ToString(), entry.Value);

这可行,但是当我尝试填充数据集时,它失败了:

DataSet reportDataSet = new DataSet();
adapter.Fill(reportDataSet);

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

谢谢:-)

【问题讨论】:

请描述存储过程声明。 【参考方案1】:

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

【讨论】:

以上是关于使用空参数和 SqlDataAdapter 调用存储过程的主要内容,如果未能解决你的问题,请参考以下文章