Значения должны быть разделены запятой, и в этом коде есть одна большая проблема. Представьте, что происходит, когда кто-то помещает в TextBox4
следующее:
' where 1 = 1 --
Результатом будет таблица, в которой все записи будут перезаписаны
update login set fname ='' where 1 = 1 --', lname='bla' ....
Вместо этого используйте DbParameter:
string strQuery = @"
update LOGIN set
FNAME = :FNAME,
LNAME = :LNAME,
PLACE = :PLACE,
DOB = :DOB
where
UNAME = :UNAME
";
OleDbCommand obCmd = new OleDbCommand(strQuery, conn);
obCmd.Parameters.AddWithValue(":FNAME", TextBox4.Text);
obCmd.Parameters.AddWithValue(":LNAME", TextBox5.Text);
obCmd.Parameters.AddWithValue(":PLACE", TextBox6.Text);
obCmd.Parameters.AddWithValue(":DOB", TextBox7.Text);
obCmd.Parameters.AddWithValue(":UNAME", Label1.Text);
OleDbDataReader obReader = obCmd.ExecuteReader();
Для Oracle :
должен указывать параметр (это @
для Sybase и MS SQL). Я назвал все параметры как целевые столбцы, но вы можете использовать и другие имена.