Dim QRY As String = "SELECT t1.Observer_Name,t1.Company, t2.Safety, t2.T_Name, t2.Trainer_Name," _
+ "t2.T_Location, t2.T_Start, t2.T_End,(DateDiff(""d"",T_Start, T_End)+1)*8 as [Man_Hours], t2.Remarks" _
+ " FROM ObserverDetails t1,Training t2,TrainningAttendee t3" _
+ " WHERE t2.T_ID=t3.T_ID AND t3.Ob_ID=t1.Observer_ID And t2.T_Start >= @dt1 AND t2.T_Start <= @dt2 "
cmdSelect.CommandText = QRY
cmdSelect.Parameters.Add("@dt1", OleDb.OleDbType.Char).Value = DateTimePicker1.Text.Trim
cmdSelect.Parameters.Add("@dt2", OleDb.OleDbType.Char).Value = DateTimePicker2.Text.Trim
cmdSelect.CommandType = CommandType.Text
cmdSelect.Connection = reportConnection4
reader1 = cmdSelect.ExecuteReader
If reader1.Read Then
While reader1.Read
Dim row As String() = New String() {" " & reader1.Item("Observer_Name") & " ", "" & reader1.Item("Company") & "", " " & reader1.Item("Safety") & " ", " " & reader1.Item("T_Name") & "", _
"" & reader1.Item("Trainer_Name") & " ", " " & reader1.Item("T_Location") & "", "" & reader1.Item("T_Start") & "", _
"" & reader1.Item("T_End") & " ", "" & reader1.Item("Man_Hours") & " ", "" & reader1.Item("Remarks") & " "}
DataGridView1.Rows.Add(row)
End While
End If
выдает ошибку reader = cmdSelect.ExecuteReader. Ошибка несоответствие типа данных в выражении критерия.
reader1
? - person Olivier Jacot-Descombes   schedule 21.08.2014T_Start
— это столбец даты, который объясняет несоответствие данных переданному тексту. - person Ňɏssa Pøngjǣrdenlarp   schedule 21.08.2014DTP.Text
и хотите, чтобы БД обрабатывала его какDate
в предложении WHERE. В этом смысл ошибки. Сравнение дат в текстовой форме не будет работать в долгосрочной перспективе. 1 сентября 1900 г. будет оцениваться больше, чем 31 декабря 2015 г., потому что 9 больше 1. Используйте даты для выполнения операций, связанных с датами. - person Ňɏssa Pøngjǣrdenlarp   schedule 21.08.2014