c#中的更新语句

本文关键字:语句 更新 | 更新日期: 2023-09-27 18:08:47

谁知道为什么这段代码不起作用?程序说"无效使用null"。在访问这些代码是有效的,但不雇用。UPDATE cas SET cas.skupaj = CDbl([Odhod]-[Prihod])*24;

try
{
    OleDbConnection conn = GetConnection();
    conn.Open();
    String MyString = @"UPDATE cas SET skupaj = CDbl(Odhod-Prihod)*24 " ;  
    OleDbCommand command = new OleDbCommand(MyString, conn);
    command.ExecuteNonQuery();
    conn.Close();
    MessageBox.Show("Uspešno dodano v PB!");
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
}

c#中的更新语句

在Access Immediate窗口会话中,这些语句抛出错误94 "Invalid use of Null"

? CDbl(Null)
? CDbl(10 - Null)
? CDbl(Null - 10)
? CDbl(Null - Null)

修改你的查询,以确保你不给CDbl() Null值。

UPDATE cas
SET skupaj = CDbl(Odhod-Prihod)*24
WHERE
        Odhod Is Not Null
    AND Prihod Is Not Null

OTOH,不清楚为什么需要将计算值存储到skupaj。您可以使用SELECT查询在需要时返回它,这样您就不必在OdhodPrihod值更改时再次运行UPDATE

SELECT CDbl(Odhod-Prihod)*24 AS skupaj
FROM cas
WHERE
        Odhod Is Not Null
    AND Prihod Is Not Null