设置 MySqlParameter = -1 如果为空
set MySqlParameter = -1 if null
我正在尝试使用 SQL 查询,但遇到可为空对象的问题:
这是我定义所有 MySql 参数的代码:
MySqlParameter[] listParams = new MySqlParameter[]
{
new MySqlParameter("id", this.ID),
new MySqlParameter("idStock", this.idStock),
new MySqlParameter("certificate", this.certificate),
new MySqlParameter("idLO", this.launchingOrder.ID),
new MySqlParameter("idToleOri", this.toleOri.ID),
new MySqlParameter("idTolesOri", string.Join("+", this.idTolesOri)),
new MySqlParameter("listInstructions", string.Join("|", this.listInstructions)),
new MySqlParameter("length", this.length),
new MySqlParameter("width", this.width),
};
在我的例子中,this.toleOri
可以为空。我想说如果 toleOri == null,那么 param.Value = -1。
但是当我执行查询时,VS 在行 new MySqlParameter("idToleOri", this.toleOri.ID)
上给出了一个错误。 (因为 toleOri 为空)
如何解决?我发现的唯一方法是始终使用 ID=-1 初始化 tleOri
。
我也试过 (this.toleOri.ID ?? -1)
,但是它说 ??
不能用于 int 或 double。我明白了消息,但不知道如何解决?
你可以尝试使用this.toleOri == null ? -1 : this.toleOri.ID
,那么当this.toleOri为null时,它会赋值-1
,而当this.toleOri
时,它会得到ID
的值它不为空。
我正在尝试使用 SQL 查询,但遇到可为空对象的问题:
这是我定义所有 MySql 参数的代码:
MySqlParameter[] listParams = new MySqlParameter[]
{
new MySqlParameter("id", this.ID),
new MySqlParameter("idStock", this.idStock),
new MySqlParameter("certificate", this.certificate),
new MySqlParameter("idLO", this.launchingOrder.ID),
new MySqlParameter("idToleOri", this.toleOri.ID),
new MySqlParameter("idTolesOri", string.Join("+", this.idTolesOri)),
new MySqlParameter("listInstructions", string.Join("|", this.listInstructions)),
new MySqlParameter("length", this.length),
new MySqlParameter("width", this.width),
};
在我的例子中,this.toleOri
可以为空。我想说如果 toleOri == null,那么 param.Value = -1。
但是当我执行查询时,VS 在行 new MySqlParameter("idToleOri", this.toleOri.ID)
上给出了一个错误。 (因为 toleOri 为空)
如何解决?我发现的唯一方法是始终使用 ID=-1 初始化 tleOri
。
我也试过 (this.toleOri.ID ?? -1)
,但是它说 ??
不能用于 int 或 double。我明白了消息,但不知道如何解决?
你可以尝试使用this.toleOri == null ? -1 : this.toleOri.ID
,那么当this.toleOri为null时,它会赋值-1
,而当this.toleOri
时,它会得到ID
的值它不为空。