Как обновить одну запись, используя три критерия в предложении WHERE ?
Привет Друзья,
Я использую Visual Basic 2015 в качестве Frontend и Access Database в качестве Backend. Я хочу обновить одну запись в таблице на следующих трех основаниях :
ГДЕ
Sap_No = TxtSap_No и
MNT (то есть месяц) = CmbMonth.Текст (т. е. текст ComboBox) и
YR (то есть год) = CmbYear.Текст (т. е. текст ComboBox)
Я попробовал три различные комбинации команды обновления, но она дает разные сообщения об ошибках :
В синтаксисе ( 1 ) и ( 3 ) я получил - "несоответствие типов данных в выражении критериев", хотя я тщательно проверяю все типы полей, все они имеют правильный тип.
В синтаксисе ( 2 ) я получил – “синтаксическая ошибка в строке в выражении запроса ‘ (Sap_No= ‘ 10798 ’) и (MNT= ‘JAN’) и (YR= ‘ 2018 ‘) ; ‘,
В чем проблема и каково ее решение ?
Кроме того если я попытаюсь опустить“, где” условие, обновление команда заменяет все записи в таблице с одинаковыми значениями и если я применяю “где Sap_No = &ампер; TxtSap_No &ампер; “ обновление команда заменяет все записи, имеющие Sap_No = TxtSap_No независимо от конкретного месяца и года.
Каким будет решение ? Я привел все три синтаксиса ниже Для справки. Пожалуйста помочь.
Что я уже пробовал:
Попробуй
'1
- LvMasterCmd.Свойства commandtext = "LeaveMaster обновить набор Sap_No= @Sap_No, From_Date= @From_Date, даты=@даты, LeaveType=@LeaveType, дн=@дней, LeaveStatus=LesveType" &амп@;
'"Где Sap_No=" & TxtSapID.Текст & "и МНТ=" &амп; &амп млн; "и yr=" &амп; У год &амп; " ;"
'2
-LvMasterCmd.Свойства commandtext = "LeaveMaster обновление комплект [Sap_No]= ?, [From_Date]= ?, [Даты]= ?, [LeaveType]= ?, [Дн]= ?, [LeaveStatus]= ? Где (Sap_No= '" & TxtSapID.Текст &ампер; "') и (МНТ= '"& &усилителя млн; " ') и (Г= '" &амп; У год &амп; " ) ;"
'3
LvMasterCmd.Свойства commandtext = "LeaveMaster обновление комплект [Sap_No]= ?, [From_Date]= ?, [Даты]= ?, [LeaveType]= ?, [Дн]= ?, [LeaveStatus]= ? Где Sap_No= " &амп; Кинт(TxtSapID.Текст) & "и МНТ=" &амп; &амп млн; "и yr=" &амп; У год &амп; " ;"
LvMasterCmd.Параметры.AddWithValue ("@Sap_No", TxtSapID.Text)
LvMasterCmd.Параметры.AddWithValue("@From_Date", DtpFrom.Value)
LvMasterCmd.Параметры.AddWithValue("@To_Date", DtpTo.Value)
LvMasterCmd.Параметры.AddWithValue("@LeaveType", LT)
LvMasterCmd.Параметры.AddWithValue ("@Days", LblDays.Text)
LvMasterCmd.Параметры.AddWithValue("@MNT", MN)
LvMasterCmd.Параметры.AddWithValue("@YR", YRR)
LvMasterCmd.Параметры.AddWithValue("@LeaveStatus", "Y")
LvMasterReader.Закрывать()
LvMasterCmd.Метод executenonquery()
LvMasterCmd.Параметры.Четкий()
Выход Из Субмарины
Поймать ex как исключение
Ящик для сообщений.Показать(напр.сообщение)
Конец Попытки