设置 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的值它不为空。