将空值传入SQL命令
本文关键字:SQL 命令 值传 空值 | 更新日期: 2023-09-27 18:11:11
我有一个类:
public class Intlist
{
public int yesFlag{ get; set; }
public int? noFlag { get; set; }
}
我需要更新一个数据库表,但有时对于可空的int值为null。我正在使用
CommandText = @"UPDATE thetable
SET Yes = " + list.yesFlag +
",NoFlag = " + (list.previous == null) ? DBNull.Value : list.previous +
",NextValue = 10"
我试图得到它,所以如果noFlag是空的,它在数据库中输入一个空,但我得到错误:
不能隐式地将类型"string"转换为"bool"
和
不能确定条件表达式的类型,因为有系统之间没有隐式转换。DBNull' and 'string'
Sayka命中目标。<<strong>使用参数/strong>。
你不仅可以保护你的数据库免受sql注入攻击,而且可以利用。net内置的功能来处理这些类型的问题。
CommandText = @"UPDATE thetable SET Yes = @yesFlag, NoFlag = @noflag, NextValue = 10";
Command.Parameters.AddWithValue("@yesFlag", list.yesFlag);
Command.Parameters.AddWithValue("@noFlag", list.previous);
强烈建议使用参数。但在您的情况下,您只需输入为'Null'。会成功的。
CommandText = @"UPDATE thetable SET Yes = " +
list.yesFlag.ToString() + ",NoFlag = " + (list.previous == null
? "NULL" : list.previous) + ",NextValue = 10";