2016-06-26 2 views
0

저는 C#으로 소프트웨어를 작성했습니다. Access 데이터베이스에서 일부 정보를 업데이트하려고했습니다. 다음은 데이터베이스 필드입니다. Date, total_h, W_hours, delay_h. Date이 기본 키입니다. 그래서 데이터를 업데이트하고 싶습니다. Date="datetimePicker.text". 여기에 내가 시도한 코드가 있습니다.Access 데이터베이스가 올바르게 업데이트되지 않습니다.

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); 
} 

예외가 발생하지 않고 프로그램이 제대로 실행되고 "Updated successfully"메시지가 표시됩니다. 그러나 내가 열 때 데이터베이스를 확인하면 데이터가 업데이트되지 않았습니다. 나는 문제가 무엇인지 이해할 수 없다 ...? 누군가 제가 그것에 대해 알고 있도록 도와주세요.

+0

에 당신은 데이터베이스의 복사본을 찾고 있습니다. 연결 문자열에서 DataDictionary 경로를 참조하십시오. 그것은 질 나쁜 쿼리입니다. 항상 SQL 주입을 방지하고 서식 오류를 방지하려면 매개 변수를 사용하십시오. – LarsTech

+0

열의 유형은 무엇입니까? –

+0

날짜 : - 날짜/시간 total_h : - 텍스트, W_hours : - 텍스트, 지연 _ 시간 : - 텍스트 –

답변

1

변화

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

string update = ".... WHERE Date= DateValue ('" + dateTimePicker1.Text + "') "; 
관련 문제