gpt4 book ai didi

c# - cmd.Parameters.AddWithValue 可为空的 int

转载 作者:太空宇宙 更新时间:2023-11-03 19:28:45 27 4
gpt4 key购买 nike

在我的数据层类中,我像这样初始化一个参数:

private int? _DependencyID;

public int? DependencyID
{ get {return _DependencyID;} set {_DependencyID = value;} }

public ConstructorMethod()
{
_DependencyID = (int?)null;
}

在类 Insert() 方法中,我正在尝试

cmd.AddWithValue("@DependencyID", _DependencyID);

如果 _DependencyID 有值,则一切正常。如果 _DependencyID 为空,我会得到错误:

The parameterized query '(@param1(nvarchar(10), @param2(nvarchar(255), expects the parameter '@DependecyID", which was not supplied

我找到了这篇[文章][1],所以我尝试像这样调整代码:

cmd.AddWithValue("@DependencyID", _DependencyID == null? DBNull.Value : _DependencyID); 

and
cmd.AddWithValue("@DependencyID", _DependencyID == null? (int?) DBNull.Value : _DependencyID);

无论哪种方式,都有问题。我该如何处理?

在此先感谢您的帮助

最佳答案

您需要添加一个对象:

cmd.AddWithValue("@DependencyID", _DependencyID == null? DBNull.Value : (object)_DependencyID); 

您可以将其缩短为

cmd.AddWithValue("@DependencyID", (object)_DependencyID ?? DBNull.Value); 

关于c# - cmd.Parameters.AddWithValue 可为空的 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6538006/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com