Я застрял с проблемой, касающейся флажков из приложения WPF в базу данных SQL.
Я достиг точки, когда я могу обновить значение определенного элемента в базе данных, но я могу только обновить значение или от 0 до 1 или от 1 до 0, я ищу что-то вроде оператора IF, и я думаю, что я близок к решению, но код не работает и выдает ошибку "рядом с ошибкой =" ПОЖАЛУЙСТА
private void Row_DoubleClick(object sender, MouseButtonEventArgs e)
{
sqliteCon.Open();
if (sqliteCon.State == System.Data.ConnectionState.Open)
{
var currentRowIndex = dataGrid1.Items.IndexOf(dataGrid1.CurrentItem);
//FROM 0 TO 1
// string q = "UPDATE tabList Set selection = '" + 1 + "' WHERE idL = "+ (currentRowIndex= currentRowIndex+1);
//TEST4
string q = @"UPDATE tabList
SET selection = (CASE
WHEN tabList.selection.Value = ' 0 '
THEN tabList.selection.Value = ' 1'
ELSE tabList.selection.Value = ' 0 '
END)
WHERE idL = " + (currentRowIndex = currentRowIndex + 1);
SqlCommand cmd = new SqlCommand(q, sqliteCon);
cmd.ExecuteNonQuery();
MessageBox.Show("Dato Modificato");
}
sqliteCon.Close();
}





Пожалуйста, замените это.
string q = @"UPDATE tabList
SET selection = (CASE WHEN " + tabList.selection.Value.ToString() + " = 0 "
+ " THEN 1 ELSE 0 END) WHERE idL = " + (currentRowIndex + 1);
Sintassi non corretta in prossimità di '='.'
System.Data.SqlClient.SqlException: «Синтаксис неисправен в предположении о '='.' это война против С#
пожалуйста, получите решение для обновления. Я надеюсь, что это работает нормально
я обновляю визуальную студию, подождите меня, пожалуйста
System.Data.SqlClient.SqlException: «невозможно вызвать методы для бита».
Что такое тип данных поля выбора?
бит, потому что мне нужен логический тип данных, а в sql бит, правда или ложь, 0 или 1
Пожалуйста, получите новое решение
Пожалуйста, получите новое решение
он не находит выбор
Какое значение получить из "tabList.selection.Value"?
Gravità Код Описание Файл проекта Рижский статус Устранение ошибки CS0103 имя «выбор» не существует в этом контексте
выбор не найден в вашей таблице (табличный список)
выбор находится в tabList
ТАК? НИЧЕГО БОЛЬШЕ?
вам может не хватать одинарной кавычки. Попробуйте заменить на это.
//TEST4
string q = @"UPDATE tabList
SET selection = (CASE
WHEN tabList.selection.Value = ' 0 '
THEN tabList.selection.Value = ' 1'
ELSE tabList.selection.Value = ' 0 '
END)
WHERE idL = '" + (currentRowIndex = currentRowIndex + 1) + "'";
пожалуйста, дайте мне знать, если это работает. :)
System.Data.SqlClient.SqlException: «Синтаксис неисправен в предположении о '='.' такая же ошибка :'(
Ваш sql неверен, также вы не можете получить доступ к объектным переменным внутри двойных кавычек.... tabList.selection.value будет восприниматься как строка, а не значение флажка