Следующая исключение, когда я запускаю код ниже:данных в выражении критериев C#
system.data.oledb.oledbexception несоответствие типов данных в выражении критериев
private void buttonUp_Click(object sender, EventArgs e)
{
try
{
connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
string query = "UPDATE data SET Name ='"+txtNL.Text+"' , Period ='"+txtper.Text+"' , DOB = '"+txtmonth.Text+"', price = '"+txtprice.Text+"', follow = '"+combofw.Text+"' WHERE ID = "+txtid.Text+" ";
//(ID,Name,Period,DOB,price,follow)
MessageBox.Show(query);
command.CommandText = query;
command.ExecuteNonQuery();
MessageBox.Show("Data Edited/Updated Successful");
connection.Close();
}
catch (Exception ex)
{ MessageBox.Show("Error " + ex); }
}
Как я могу это исправить?
Пожалуйста, не используйте конкатенацию строк для создания операторов SQL. Представьте себе пользователя, набравшего '0; пользователи с разделителями таблиц, -' в txtID.Text. Или просто 'x' (возможно, что здесь произошло). Используйте параметризованные запросы, гарантируя, что параметры имеют те же типы, что и базовые поля –