2017-03-21 13 views
0

에 데이터 유형이 일치하지 않는다는 메시지가 나타납니다. 데이터베이스에서 데이터를 선택하고 조건이 날짜 일 때이 메시지가 나타납니다. 기준 표현.데이터베이스에서 데이터를 선택하고 조건이 날짜 인 경우 조건식

이것은 내 코드입니다.

public DataTable loadhooodor() 
{ 
    DataTable hooodorDt = new DataTable(); 
    OleDbDataAdapter hooodorDa; 
    hooodorDt.Clear(); 
    DateTime today = new DateTime(); 
    today = DateTime.Today; 
    hooodorDa = new OleDbDataAdapter("select * from HoodoorEnseraf where heDate='"+ today+ "'", connection); 
    hooodorDa.Fill(hooodorDt); 
    return hooodorDt; 
} 

private void dataGridRefresh() 
{ 
    dataGridView1.DataSource = null; 
    dataGridView1.Update(); 
    dataGridView1.Refresh(); 
    dataGridView1.DataSource = loadhooodor(); 
} 

나는이 메시지가 나타납니다. 내 액세스 데이터 테이블은

enter image description here

,

enter image description here

+2

나는 날짜에 대한 매개 변수를 사용하는 대신 제대로 당신을위한 서식을 처리 할 수 ​​있도록 쿼리를 포맷 건의 할 것입니다. – juharr

답변

0

Access에서 날짜를 참조 할 때는 #을 입력해야합니다. This link gives more details

날짜가 올바른지 확인하는 것이 좋습니다. 이 경우 ToString을 사용할 수 있습니다.

그래서 코드가된다 :

hooodorDa = new OleDbDataAdapter("select * from HoodoorEnseraf where heDate=#"+ today.ToString("yyyy/MM/dd")+ "#", connection); 
+0

고마워요. –

0

검사 날짜의 날짜 형식은 당신이 보내는 & 시스템의 날짜 형식. 중 하나

+0

동일 mm/dd/yyyy –

1

매개 변수화 된 쿼리를 사용하지 않는 문제. 대신 사용해보십시오

hooodorDa = new OleDbDataAdapter("select * from HoodoorEnseraf where [email protected]", connection); 
hooodorDa.SelectCommand.Parameters.Add("@today", 
       System.Data.SqlDbType.DateTime); 
hooodorDa.SelectCommand.Parameters["@today"].Value = today; 
hooodorDa.Fill(hooodorDt);