本文介绍了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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-22 23:29