向 Sql Server 发送空参数

2024-01-30

我有一个SqlCommand我用来更新数据库表的对象,但它不能正确解释我的空值。

这是 SQL:

UPDATE dbo.tbl 
SET param1 = @param1, 
param2 = @param2,
param3 = @param3,
param4 = @param4, 
param5 = @param5, 
param6 = @param6, 
param7 = @param7, 
param8 = @param8, 
param9 = @param9, 
param10 = @param10 
WHERE param11 = @param11

我尝试过像这样可以为空的空合并参数,但没有取得任何成功。除非另有说明,所有参数都是字符串:

command.Parameters.AddWithValue("@param1", param1 ?? DBNull.Value);
command.Parameters.AddWithValue("@param2", param2 ?? DBNull.Value);
command.Parameters.AddWithValue("@param3", param3 ?? DBNull.Value);
command.Parameters.AddWithValue("@param4", param4 ?? DBNull.Value);
command.Parameters.AddWithValue("@param5", param5 ?? DBNull.Value);
// param6 is nullable type DateTime?
command.Parameters.AddWithValue("@param6", param6 ?? DBNull.Value); 
command.Parameters.AddWithValue("@param7", param7 ?? DBNull.Value);
// param8 is nullable type DateTime?
command.Parameters.AddWithValue("@param8", param8 ?? DBNull.Value); 
command.Parameters.AddWithValue("@param9", param9 ?? DBNull.Value);
// param10 nullable type float?
command.Parameters.AddWithValue("@param10", param10 ?? DBNull.Value); 
command.Parameters.AddWithValue("@param11", param11 ?? DBNull.Value);

我收到这样的异常:

The parameterized query '(@param1 nvarchar(4000),@param2 nvarchar(4000),@param3 nvarc' expects the parameter '@param4', which was not supplied.

我还尝试在将每个参数添加到 SqlCommand 对象后循环遍历每个参数,以设置 DbNull.Value 如果参数值为 null,如下所示:

foreach (SqlParameter parameter in command.Parameters)
{
    if (parameter.Value == null)
    {
        parameter.Value = DBNull.Value;
    }
}

但是,这种方法会导致异常:

String or binary data would be truncated.
The statement has been terminated.

将 null 参数传递给 a 的最佳实践是什么SqlCommand?我不想简单地传递默认值(如果它们为空),因为数据库架构允许空值。


尝试这个 :

command.Parameters.AddWithValue("@param1", param1 ?? Convert.DBNull);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

向 Sql Server 发送空参数 的相关文章

  • 在 LINQ 中按 Id 连接多表和分组

    我想按categoryId显示列表产品的名称组 这是我的代码 我想要我的视图显示结果 Desktop PC HP Red PC Dell Yellow PC Asus Red SmartPhone Lumia 720 Blue 我的组模型
  • 在 C 中匹配二进制模式

    我目前正在开发一个 C 程序 需要解析一些定制的数据结构 幸运的是我知道它们是如何构造的 但是我不确定如何在 C 中实现我的解析器 每个结构的长度都是 32 位 并且每个结构都可以通过其二进制签名来识别 举个例子 有两个我感兴趣的特定结构
  • 为什么极端下派生类(多重虚拟继承)的大小包括超类成员大小的两倍?

    include
  • 如何创建包含 IPv4 地址的文本框? [复制]

    这个问题在这里已经有答案了 如何制作一个这样的文本框 我想所有的用户都见过这个并且知道它的功能 您可以使用带有 Mask 的 MaskedTestBox000 000 000 000 欲了解更多信息 请参阅文档 http msdn micr
  • 在 C 中初始化变量

    我知道有时如果你不初始化int 如果打印整数 您将得到一个随机数 但将所有内容初始化为零似乎有点愚蠢 我问这个问题是因为我正在评论我的 C 项目 而且我对缩进非常直接 并且它可以完全编译 90 90 谢谢 Stackoverflow 但我想
  • 通知设置的数据库设计

    用户可以打开或关闭 他的通知设置 帐户 用于通知 例如 更改帐户资料信息 收到新消息等 通知可以通过电子邮件或手机 推送或短信 发送 用户可以只有 1 封电子邮件和多个手机设备 有什么方法可以改进以下数据库设计或者您会采取不同的方式吗 让我
  • 在一个平台上,对于所有数据类型,所有数据指针的大小是否相同? [复制]

    这个问题在这里已经有答案了 Are char int long 甚至long long 大小相同 在给定平台上 不能保证它们的大小相同 尽管在我有使用经验的平台上它们通常是相同的 C 2011 在线草稿 http www open std
  • 如何检测表单的任何控件的变化?

    如何检测 C 中表单的任何控件的更改 由于我在一个表单上有许多控件 并且如果表单中的任何控件值发生更改 我需要禁用按钮 我正在寻找一些内置函数 事件处理程序 属性 并且不想为此创建自定义函数 不 我不知道任何时候都会触发任何事件any控制表
  • 如何在 Xaml 文本中添加电子邮件链接?

    我在 Windows Phone 8 应用程序中有一些大文本 我希望其中有电子邮件链接 例如 mailto 功能 这是代码的一部分
  • Azure 辅助角色“请求输入之一超出范围”的内部异常。

    我在辅助角色中调用 CloudTableClient CreateTableIfNotExist 方法 但收到一个异常 其中包含 请求输入之一超出范围 的内部异常 我做了一些研究 发现这是由于将表命名为非法表名引起的 但是 我尝试为我的表命
  • 为什么 std::strstream 被弃用?

    我最近发现std strstream已被弃用 取而代之的是std stringstream 我已经有一段时间没有使用它了 但它做了我当时需要做的事情 所以很惊讶听到它的弃用 我的问题是为什么做出这个决定 有什么好处std stringstr
  • 动态添加 ASP.Net 控件

    我有一个存储过程 它根据数据库中存储的记录数返回多行 现在我想有一种方法来创建 div 带有包含该行值的控件的标记 如果从数据库返回 10 行 则 10 div 必须创建标签 我有下面的代码来从数据库中获取结果 但我不知道如何从这里继续 S
  • Cmake 链接共享库:包含库中的头文件时“没有这样的文件或目录”

    我正在学习使用 CMake 构建库 构建库的代码结构如下 include Test hpp ITest hpp interface src Test cpp ITest cpp 在 CMakeLists txt 中 我用来构建库的句子是 f
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • 方法优化 - C#

    我开发了一种方法 允许我通过参数传入表 字符串 列数组 字符串 和值数组 对象 然后使用这些参数创建参数化查询 虽然它工作得很好 但代码的长度以及多个 for 循环散发出一种代码味道 特别是我觉得我用来在列和值之间插入逗号的方法可以用不同的
  • 我是否需要在外键上指定 ON DELETE NO ACTION?

    我有以下与 SQL Server 2012 一起使用的 DDL CREATE TABLE Subject SubjectId INT IDENTITY 1 1 NOT NULL Name NVARCHAR 50 Not NULL CONST
  • 无法接收 UDP Windows RT

    我正在为 Windows 8 RT 编写一个 Windows Store Metro Modern RT 应用程序 需要在端口 49030 上接收 UDP 数据包 但我似乎无法接收任何数据包 我已按照使用教程进行操作DatagramSock
  • 使用 .NET Process.Start 运行时挂起进程 - 出了什么问题?

    我在 svn exe 周围编写了一个快速而肮脏的包装器来检索一些内容并对其执行某些操作 但对于某些输入 它偶尔会重复挂起并且无法完成 例如 一个调用是 svn list svn list http myserver 84 svn Docum
  • 从列表中选择项目以求和

    我有一个包含数值的项目列表 我需要使用这些项目求和 我需要你的帮助来构建这样的算法 下面是一个用 C 编写的示例 描述了我的问题 int sum 21 List
  • 如何将 PostgreSql 与 EntityFramework 6.0.2 集成? [复制]

    这个问题在这里已经有答案了 我收到以下错误 实体框架提供程序类型的 实例 成员 Npgsql NpgsqlServices Npgsql 版本 2 0 14 2 文化 中性 PublicKeyToken 5d8b90d52f46fda7 没

随机推荐

  • 按下按钮时如何隐藏/显示元素?

    我正在尝试学习如何使用 Eclipse IDE 开发 Android 我现在想做的是在按下按钮时使隐藏的 TableLayout 可见 但是 我不知道需要在按钮的 OnClick 属性中放入什么内容 另外 是否有任何在线教程可以帮助我学习如
  • 重新绘制自定义标签

    React Recharts 的自定义标签不适用于条形图 http jsfiddle net xpko4e7e http jsfiddle net xpko4e7e
  • 按键合并地图

    假设我有两张地图 val a Map 1 gt one 2 gt two 3 gt three val b Map 1 gt un 2 gt deux 3 gt trois 我想按键合并这些映射 应用一些函数来收集值 在这种特殊情况下 我想
  • 在休眠中加载百万行

    如果我想在休眠中获取百万行 它会如何工作 休眠会崩溃吗 我该如何优化它 通常您不会为此使用 hibernate 如果需要执行批量操作 请使用 sql 或 hibernate 包装器进行批量操作 加载数百万条记录不可能为您的应用程序带来良好的
  • __len__ 无法返回大数字

    下面的代码 class Container def len self return 10 100 c Container print len c returns OverflowError 无法将 int 放入索引大小的整数中 我读过这个问
  • DynamoDB 在本地计算机中创建表

    我已将 DynamoDB jar 下载到本地 Windows 计算机 并能够使用下面的命令启动服务 java jar DynamoDBLocal jar dbPath 我可以使用 localhost 8000 shell 访问 Web 控制
  • 如何以矢量化方式查找特定轴上二维数组的唯一向量?

    我有一个形状数组 n t 我想将其视为一个时间序列n vectors 我想知道独特的n vector沿线存在的价值观t dimension以及相关的t indices对于每个独特的向量 我很乐意使用任何合理的平等定义 例如numpy uni
  • 如何获取单独数据集中 cte 的行计数?

    我已经找到了一种使用 CTE 和 Row Number 函数从数据库获取快速分页结果的方法 如下所示 DECLARE PageSize INT 1 DECLARE PageNumber INT 2 DECLARE Customer TABL
  • 压缩和utf8编码

    有人可以告诉我为什么我在此过程中丢失信息吗 一些 utf 8 字符似乎未解码 Biography u003clink type or Steve Blunt u0026 Marty Kelley但其他人却这样做 Name 朱敬 Creati
  • 是否可以从管道中的 sh DSL 命令捕获标准输出

    例如 var output sh echo foo echo output output 我会得到 output 0 所以 显然我得到的是退出代码而不是标准输出 是否可以将标准输出捕获到管道变量中 以便我可以获得 output foo作为我
  • 处理多个项目时.NET Core 2.0 appsettings.json 文件位置

    我正在开发一个由多个项目组成的 NET Core 2 1 103 WebAPI 应用程序 每个项目都需要有自己的 appsettings json 文件 每个项目都位于主 解决方案 文件夹内自己的子目录中 这是目录结构的简化版本 其中包含我
  • 致命错误:在 AppKernel.php 中找不到类

    我已经按照 Symfony 文档生成了一个新的 Bundle ImgBundle 但是当在浏览器中重新加载应用程序时 它无法识别该包的主类 这是我的 ImgBundle php
  • ReSharper Unit Test Runner 忽略部署项配置

    我正在使用 Resharper 6 1 对新项目进行单元测试 它似乎忽略了 local testsettings 文件的 Deployment 部分 我尝试在 ReSharper gt 选项 gt 单元测试 gt MSTest gt 使用此
  • Java泛型和枚举,模板参数丢失

    我有一个相当复杂的结构 但它没有按预期工作 这就是我所做的 public interface ResultServiceHolder
  • 使用 Jackson 解析 Json 文件

    TestSuite TestSuiteInfo description parse TestCase TestCaseData sequence sequential testNumber 2 testCaseFile testcase W
  • 如何在android中快速上传大视频文件到服务器

    您好 我正在使用 Volley Multi part Api 将大型视频文件上传到服务器 但上传到服务器需要很长时间 分割我的视频文件并发送到服务器是否更好 如果更好 请向我提供代码 我该怎么做 如果不是 将大视频文件快速上传到服务器的最佳
  • 在 C# 中比较两个列表中的重复项

    我有两个这样的列表 List
  • 将 ASP.NET updatepanel 与 jQuery UI DatePicker 组合时出现奇怪的错误

    我创建了一个结合了内联的页面jQuery UI 日期选择器 http docs jquery com UI Datepicker 当用户单击新日期来更新某些数据时 我不想启动对更新面板的回调 现在 此页面有多个更新面板 不要问 因此我需要检
  • 如何使用 asp.net MVC razor 将两个模型组合成一个模型并将其传递给视图

    我试图将两个模型 tblCategories 和 tblProducts 组合成一个模型并将其传递给视图 但没能做到 tblCategory cs主模型有以下数据 namespace ScaffoldCreate Models using
  • 向 Sql Server 发送空参数

    我有一个SqlCommand我用来更新数据库表的对象 但它不能正确解释我的空值 这是 SQL UPDATE dbo tbl SET param1 param1 param2 param2 param3 param3 param4 param