2

このコードが機能しない理由を知っている人はいますか? プログラムは「無効な null の使用」と言っています。アクセスの thise コードは機能していますが、雇っていません。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 「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 に答える