- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
string insertSQL;
insertSQL = "INSERT INTO Authors (";
insertSQL += "au_id, au_fname, au_lname, ";
insertSQL += "phone, address, city, state, zip, contract) ";
insertSQL += "VALUES ('";
insertSQL += txtID.Text + "', '";
insertSQL += txtFirstName.Text + "', '";
insertSQL += txtLastName.Text + "', '";
insertSQL += txtPhone.Text + "', '";
insertSQL += txtAddress.Text + "', '";
insertSQL += txtCity.Text + "', '";
insertSQL += txtState.Text + "', '";
insertSQL += txtZip.Text + "', '";
insertSQL += Convert.ToInt16(chkContract.Checked) + "')";
Во-вторых, надо хотя бы StringBuilder использовать.
это полный пиздец
http://xkcd.com/327/
Если оптимизатор не дурак, то он это превратит в один вызов String.Concat. И это будет гораздо эффективнее, чем StringBuilder.
string insertSQL = @"INSERT INTO Authors
au_id, au_fname)
VALUES (@id, @fname)
>> А кто сказал что защита от инъекций нужна в данном конкретном коде?
а никто не сказал. она просто должна быть.
ещё есть такое понятие как Stored Procedure
Результат:
00:00:03.6318518
00:00:00.0013725
В таком случае String += будет медленнее в 1,5 раза
Не пишите так :)
Некоторые долбаебы вообще пишут "ab" + "cd" через StringBuilder
хуесосы больше 100 строк никогда кода не видали.