带有可选参数的原始 SQL 插入语句
本文关键字:原始 SQL 插入 语句 参数 | 更新日期: 2023-09-27 18:30:49
我正在尝试执行此命令,但出现异常:
cmd.CommandText = @"insert into Foo (Column1, Column2)
values (@Parameter1, @Parameter2)";
cmd.Parameters.Add(new SqlParameter("@Parameter1", 'bar'));
cmd.Parameters.Add(new SqlParameter("@Parameter2", null));
例外情况指出@Parameter2是预期的,但未提供。
实际上,我正在为其提供空值。那么如何将这个非常空的插入到可空的列 2 中呢?
如果要提供对基础数据库的NULL
,请使用DBNull.Value
:
cmd.Parameters.Add("@Parameter2", SqlDbType.Int).Value = DBNull.Value;
适应您的参数真正是什么数据类型(我只是在这里猜测,因为您没有告诉我们 - 我更喜欢总是明确地告诉参数它是什么数据类型)
使用 DBNull.Value
表示数据库的null
值:
cmd.CommandText = @"insert into Foo (Column1, Column2)
values (@Parameter1, @Parameter2)";
cmd.Parameters.Add(new SqlParameter("@Parameter1", 'bar'));
cmd.Parameters.Add(new SqlParameter("@Parameter2", DBNull.Value));