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 数据库,并且表字段的类型DatumDate/Time.

这是程序: https:
//www.dropbox.com/s/hx4zduvul8mh2uy/8.4.zip 问题图片: http: //img43.imageshack.us/img43/5189/errorbh.jpg

4

2 回答 2

0

缺少一些撇号?

String MyString = @"UPDATE cas SET Odhod= '" + label1.Text + "' 
WHERE sifra = " + textBox1.Text + " and Datum = '"+date+"'";
于 2013-04-09T18:10:29.780 回答
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 回答