为什么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
答案 0 :(得分:1)
实际上,在MySQL中使用= or != null
无效。使用IS NULL
或IS NOT NULL
。
您可以尝试以下方法吗?
MySqlCommand cmd = new MySqlCommand("SELECT *
FROM `sparter`
WHERE `id` = @machineNumber AND `account_id` is @null", conn);