具有DBNull.Value值的C#MySqlCommand参数不起作用

时间:2018-09-11 11:54:22

标签: c# sql parameters mariadb

为什么DBNull.Value的值在以下代码中不起作用?我不断得到错误的返回值,同时我确定有一条匹配的记录。

(machineNumber确实具有“ b”的值,所以这不是问题)

MySqlCommand cmd = new MySqlCommand("SELECT * FROM `sparter` WHERE `id` = @machineNumber AND `account_id` = @null", conn);

            cmd.Parameters.AddWithValue("@machineNumber", machineNumber);
            cmd.Parameters.AddWithValue("@null", DBNull.Value);

            using (var reader = cmd.ExecuteReader())
            {
                return reader.read();
            }

此查询在MySqlWorkbench中运行时:

SELECT * FROM `sparter` WHERE `id` = "b" AND `account_id` IS NULL

1 个答案:

答案 0 :(得分:1)

实际上,在MySQL中使用= or != null无效。使用IS NULLIS NOT NULL

您可以尝试以下方法吗?

MySqlCommand cmd = new MySqlCommand("SELECT * 
                                     FROM `sparter`
                                     WHERE `id` = @machineNumber AND `account_id` is @null", conn);