[Решено] несоответствие типов данных в выражении критериев
Это должно быть легко, но я что-то упускаю и работаю над этим уже два дня.
Я пытаюсь вставить дату/время в короткий формат даты (дата/время ММ / ДД/гггг) в базу данных access и каждый раз получаю "несоответствие типа данных в выражении критериев". Если я закомментирую "startday", то получу" No value Given", чего я и ожидал.
Любая помощь здесь будет очень признательна.
Заранее спасибо
Я использую здесь главную страницу, если это имеет какое-то значение в данном случае. :- О : - О
Вот полный код за исключением строки подключения, которую я изменил:
Sub CrossPage_FirstPage() Dim strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MyConnectionString" Dim MyCon As New OleDbConnection(strConn) Dim MySqlDelete As String = "delete from problemdefinition" Dim MySqlInsert As String = "INSERT INTO problemdefinition (memberage, sex, spouseage, numberchildren, countyid, zipcoderange, startday, dayscov) VALUES (@memberage, @sex, @spouseage, @numberchildren, @countyid, @zipcoderange, @startday, @DaysCov)" 'Dim MySqlInsert As String = "INSERT INTO problemdefinition (client, memberage, spouseage, numberchildren, County,zipcode, startcoverage) VALUES ('" & txtName.Text & "'," & txtAge.Text & "," & txtSpouseAge.Text & "," & txtNumberChildren.Text & ")" Dim textboxName As TextBox = Me.PreviousPage.Master.FindControl("menu2").FindControl("txtName") Dim MyDate As String = DirectCast(Me.PreviousPage.Master.FindControl("menu2").FindControl("txtCalendar1"), TextBox).Text Dim cmd As New OleDbCommand(MySqlDelete, MyCon) With cmd.Parameters '.Add(New OleDbParameter("@client", textboxName.Text)) '.Add(New OleDbParameter("@memberage", DirectCast(Me.PreviousPage.Master.FindControl("ContentPlaceHolder1").FindControl("txtname"), TextBox).Text)) .Add(New OleDbParameter("@memberage", DirectCast(Me.PreviousPage.Master.FindControl("menu2").FindControl("txtAge"), TextBox).Text)) .Add(New OleDbParameter("@sex", DirectCast(Me.PreviousPage.Master.FindControl("menu2").FindControl("rbgGender1"), RadioButtonList).Text)) .Add(New OleDbParameter("@spouseage", DirectCast(Me.PreviousPage.Master.FindControl("menu2").FindControl("txtSpouseAge"), TextBox).Text)) .Add(New OleDbParameter("@numberchildren", DirectCast(Me.PreviousPage.Master.FindControl("menu2").FindControl("txtNumberChildren"), TextBox).Text)) .Add(New OleDbParameter("@countyid", DirectCast(Me.PreviousPage.Master.FindControl("menu2").FindControl("lblhidden1"), Label).Text)) .Add(New OleDbParameter("@zipcoderange", DirectCast(Me.PreviousPage.Master.FindControl("menu2").FindControl("drpZip1"), TextBox).Text)) '.Add(New OleDbParameter("@deductible", DirectCast(Me.PreviousPage.Master.FindControl("menu2").FindControl("DrpDed1"), DropDownList).SelectedItem.Value)) '.Add(New OleDbParameter("@startday", DirectCast(Me.PreviousPage.Master.FindControl("menu2").FindControl("txtCalendar1"), TextBox).Text)) .Add(New OleDbParameter("@DaysCov", DirectCast(Me.PreviousPage.Master.FindControl("menu2").FindControl("txtNumDays1"), TextBox).Text)) .Add(New OleDbParameter("@startday", "CDate('" + MyDate + "')")) End With Dim result As Integer = -1 'Use a variable to hold the SQL statement. If MyCon.State = ConnectionState.Closed Then MyCon.Open() cmd.CommandText = MySqlDelete result = cmd.ExecuteNonQuery() MyCon.Close() End If 'If result <> -1 Then If MyCon.State = ConnectionState.Closed Then MyCon.Open() cmd.CommandText = MySqlInsert cmd.ExecuteNonQuery() MyCon.Close() End If 'End If Dim StartCov As String = DirectCast(Me.PreviousPage.Master.FindControl("menu2").FindControl("txtCalendar1"), TextBox).Text End Sub