当前位置: 首页 > 面试题库 >

使用SqlCommand +参数将数据库值设置为null

冷宏茂
2023-03-14
问题内容

今天,我以前曾被教过如何在此答案中(。单击)在.NET中的SQL查询中设置参数。

使用带有值的参数很好,但是当我尝试将数据库中的字段设置为null时,我将失败。该方法认为我未设置有效参数或未指定参数。

例如

Dim dc As New SqlCommand("UPDATE Activities SET [Limit] = @Limit WHERE [Activity] = @Activity", cn)

If actLimit.ToLower() = "unlimited" Then
    ' It's not nulling :(
    dc.Parameters.Add(New SqlParameter("Limit", Nothing))
Else
    dc.Parameters.Add(New SqlParameter("Limit", ProtectAgainstXSS(actLimit)))
End If

有什么我想念的吗?我做错了吗?


问题答案:

您需要DBNull
.Value。

在共享的DAL代码中,我使用的辅助方法只是执行以下操作:

    foreach (IDataParameter param in cmd.Parameters)
    {
        if (param.Value == null) param.Value = DBNull.Value;
    }


 类似资料:
  • 问题内容: 我有一个脱机的2008 sql数据库,我想联机并设置为多用户。当我执行以下命令时,使用SQL Server Management Studio-新查询窗口- 我收到此错误消息: 消息5064,级别16,状态1,行1目前无法更改数据库’mydb’的状态或选项。数据库处于单用户模式,并且当前有用户连接到该数据库。 消息5069,级别16,状态1,第1行的ALTER DATABASE语句失败

  • 问题内容: 我一直在互联网上搜索,但似乎找不到任何能解释我的问题的信息(可能是因为我没有使用正确的搜索字符串),所以我在这里发帖希望有人可以帮助我有了这个。(我的程序是使用Visual Studio 2010编写的C#代码) 我注意到在C#中,有多种构造SQL命令的方法。 到目前为止,我没有任何问题。我遇到的问题是。我在我的代码(/ / / )中使用了几个不同的命令,但让我们举个例子。 上面两个示

  • 问题内容: 我使用以下代码从SQL Server表中进行选择: 它运行完美,但是我想防止SQL注入,所以我尝试使用: 当我尝试执行此操作时,SQL Server没有任何结果。 知道为什么吗? 问题答案: “为什么?” 这是因为很少有电影的名称中带有“ @Search”一词-即“ Indiana Jones and the Last @Search”。也许是《星际迷航3:@搜索Spock》。通过将其

  • 问题内容: 我需要更改单个数据库的时区吗? 我知道我们可以在WHM中更改时区(我们正在使用hostgator的专用服务器),但是服务器上运行的大量旧版软件中有很多+6小时的编码(即服务器时区为CST,需要GMT时间,因此以前的开发人员会在代码中手动更改日期/时间- 很糟糕!)。 我现在正在开发一个新软件,并希望将其全部保存在GMT中,我知道我可以使用date_default_timezone_se

  • MySQL、Oracle、PostgreSQL、SQL Server、MariaDB 在“据库”选项卡中,你可以设置从数据库导入窗口显示哪些数据库。这设置不是强制的。若要设置自定义数据库设置,请勾选“使用自定义数据库列表”。然后,从“名”列勾选要显示的数据库。 添加一个隐藏的数据库到列表 点击“+”按钮。 输入数据库名。 在数据库列表中勾选新添加的数据库。 从列表中移除一个数据库 在数据库列表中选

  • 在“数据库”选项卡中,你可以设置在从数据库导入窗口显示哪些数据库。这设置不是强制的。若要设置自定义数据库设置,请勾选“使用自定义数据库列表”。然后,从“数据库”列勾选要显示的数据库。 【注意】仅适用于 MySQL、Oracle、PostgreSQL、SQL Server 和 MariaDB。 添加一个隐藏的数据库到列表 点击“添加数据库到列表”按钮。 输入数据库名。 在数据库列表中勾选新添加的数据