本文介绍了cmd.Parameters.AddWithValue可空INT的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在我的数据层类,我初始化参数,像这样:
In my data layer class, I initialize a parameter like so:
private int? _DependencyID;
public int? DependencyID
{ get {return _DependencyID;} set {_DependencyID = value;} }
public ConstructorMethod()
{
_DependencyID = (int?)null;
}
在类insert()方法,我试图
In the class Insert() method, I am attempting
cmd.AddWithValue("@DependencyID", _DependencyID);
如果_DependencyID有一个值,一切都很好。
如果_DependencyID为空,我得到错误:
If _DependencyID has a value, all is well.If _DependencyID is null, I get error:
的参数化查询
'(@参数1(为nvarchar(10),
@参数2(为nvarchar(255),预计
参数'@DependecyID,这是
不提供
我发现这篇[文章] [1],所以我试图调整code,像这样:
I found this [article][1], so I tried adjusting code like so:
cmd.AddWithValue("@DependencyID", _DependencyID == null? DBNull.Value : _DependencyID);
and
cmd.AddWithValue("@DependencyID", _DependencyID == null? (int?) DBNull.Value : _DependencyID);
无论哪种方式,有问题。我应该如何处理呢?
Either way, there are issues. How should I handle this?
在此先感谢您的帮助。
推荐答案
您需要添加一个对象
:
cmd.AddWithValue("@DependencyID", _DependencyID == null? DBNull.Value : (object)_DependencyID);
您可以缩短,为
cmd.AddWithValue("@DependencyID", (object)_DependencyID ?? DBNull.Value);
这篇关于cmd.Parameters.AddWithValue可空INT的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!