2017-04-04 6 views
0

ms 액세스 테이블 'AddDate'가 있습니다. 두 개의 열 'Id'- 자동 번호, 'AddDate'- 날짜 시간.dateTimePicker의 날짜를 ms 액세스 데이터베이스에 저장하고 두 날짜 간의 검색 기록

VS 2015에는 날짜 값을 삽입 할 dateTimePicker가있는 양식이 있습니다.

나는 날짜 삽입하기 위해 다음과 같은 쿼리를 사용 :

 conn.Open();string str = "Insert into AddDate ([AddDate]) Values(@AddDate)"; 
     OleDbCommand cmd = new OleDbCommand(str, conn); 
     cmd.Parameters.AddWithValue("@AddDate", dateTimePicker1.Value.ToShortDateString()); 
     cmd.ExecuteScalar(); 
     conn.Close(); 

을 내가 기록이 때 두 날짜 사이에이 기록을 검색 할 들어갔다. 이를 위해 나는이 개있는 DateTimePicker를하고 난 DataGridView를 얻을 다음 코드를 사용 : 기준 식의

 OleDbDataAdapter odb = new OleDbDataAdapter("Select * from AddDate where AddDate Between '"+dateTimePicker1.Value.ToShortDateString() + "' and '"+ dateTimePicker2.Value.ToShortDateString() + "' ", conn); 
     DataTable dt = new DataTable(); 
     odb.Fill(dt); 

     dataGridView1.DataSource = dt; 

는 MS 액세스 테이블 ADDDATE 열이 날짜 시간으로 설정되어있는 경우 이제 선택 쿼리를 줄 것이다 오류 '데이터 유형 Missmatch '. 그리고 열 데이터 형식 속성을 ms 액세스 테이블의 텍스트로 변경하면 쿼리가 작동하지만 월과 관계없이 두 날짜 사이에있는 테이블의 모든 레코드를 수집합니다.

예제 및 전체 코드로 설명하십시오. MS Access 2010에서도 DataType 속성을 지정하십시오.

감사합니다.

감사합니다. Manoj Yadwad.

답변

0

날짜 따라서, 문자열이 아닌 :

cmd.Parameters.AddWithValue("@AddDate", dateTimePicker1.Value); 

하지만 당신이 유효한 날짜 표현을 포맷해야합니다 연결하는 : 더 나은

OleDbDataAdapter odb = new OleDbDataAdapter("Select * from AddDate where AddDate Between #" + dateTimePicker1.Value.ToString("yyyy'/'MM'/'dd") + "# and #" + dateTimePicker2.Value.ToString("yyyy'/'MM'/'dd") + "#", conn); 

뿐만 아니라 여기에 매개 변수를 사용하는 것입니다.

+0

고맙습니다. 정말 쉽게 작동했습니다. 당신의 대답은 내가 필요한 시점까지 정확했습니다. 다시 한번 감사드립니다. –