2

任何人都知道为什么tihs代码不起作用?程序说“无效使用 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);
}
4

1 回答 1

5

在 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查询来返回它,这样您就不必在任何时候或值更改UPDATE时再次运行。OdhodPrihod

SELECT CDbl(Odhod-Prihod)*24 AS skupaj
FROM cas
WHERE
        Odhod Is Not Null
    AND Prihod Is Not Null
于 2013-04-11T20:07:18.770 回答