0

string date= DateTime.Now.ToString("d.M.yyyy",System.Globalization.DateTimeFormatInfo.InvariantInfo);

String MyString = @"UPDATE cas SET Odhod= '" + label1.Text + "' 
WHERE sifra = " + textBox1.Text + " and Datum = "+date+"";

Datum(「日付」のドイツ語)なしでこの更新を行うと、機能しますが、Datum機能しません。Accesss データベースに接続しており、テーブル フィールドの型Datumは ですDate/Time

これがプログラムです: https://www.dropbox.com/s/hx4zduvul8mh2uy/8.4.zip
問題の写真: http://img43.imageshack.us/img43/5189/errorbh.jpg

4

2 に答える 2

0

パラメータ化されたクエリを使用します。日付形式について心配する必要はなく、クエリが SQL インジェクションセーフになります。

string fileName = @"C:\mydb.accdb";
string query = "UPDATE cas SET Odhod = ? WHERE sifra = ? AND Datum = ?";

using (OleDbConnection conn = new OleDbConnection(
       "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName)) {

    OleDbCommand cmd = new OleDbCommand(query, conn);

    cmd.Parameters.AddWithValue("?", label1.Text);
    cmd.Parameters.AddWithValue("?", textBox1.Text);
    cmd.Parameters.AddWithValue("?", date);

    conn.Open();
    cmd.ExecuteNonQuery();
}
于 2013-04-09T18:30:41.070 に答える