2016-06-26 6 views
0

私はC#でソフトウェアを作成しています。私はAccessデータベース内のいくつかの情報を更新しようとしました。ここに私のデータベースのフィールドです。 Date,total_h,W_hours,delay_hDateがプライマリキーです。だから私はDate="datetimePicker.text"のデータを更新したい。ここでコードは私が試みたものです。アクセスデータベースが正しく更新されない

try 
{ 
    connection.Open(); 
    OleDbCommand cmd = new OleDbCommand(); 
    cmd.Connection = connection;    
    string update = "update summery_data set total_h='"+tHour+"', delay_h='"+delay+"' WHERE Date= " + dateTimePicker1.Text + " ";  
        cmd.CommandText = update; 
        cmd.ExecuteNonQuery(); 
        MessageBox.Show(" Updated successfully"); 
        connection.Close(); 
} 
catch(Exception ex) 
{ 
    MessageBox.Show(ex.Message); 
} 

プログラムは正常に実行されており、「更新が正常に完了しました」というメッセージも表示されます。しかし、私が開いて、データベースをチェックすると、データは更新されていません。私は問題が何であるか理解できません...?誰かがそれを知ってくれて助けてください。

+0

にデータベースのコピーを見ています。接続文字列のDataDictionaryパスを参照してください。それはひどいクエリです。 SQLインジェクションを避け、フォーマット・エラーを回避するには、常にパラメータを使用します。 – LarsTech

+0

あなたの列の種類は何ですか? –

+0

日付:-date/time total_h: - テキスト、W_hours:-Text、delay_h:-text –

答えて

1

変更

string update = ".... WHERE Date= " + dateTimePicker1.Text + " "; 

string update = ".... WHERE Date= DateValue ('" + dateTimePicker1.Text + "') "; 
関連する問題