我正在尝试执行此命令但获得异常:
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 是预期的,但未提供。
实际上我正在为它提供 null 值。那么如何将这个非常空的空格插入可空的 Column2 ?
答案 0 :(得分:3)
如果您想为基础数据库提供NULL
,请使用DBNull.Value
:
cmd.Parameters.Add("@Parameter2", SqlDbType.Int).Value = DBNull.Value;
适应你的参数真正的数据类型(我只是猜测,因为你没有告诉我们 - 我更喜欢总是明确地告诉参数它是什么数据类型)
答案 1 :(得分:1)
使用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));