Запрос на обновление значений - PullRequest
2 голосов
/ 11 февраля 2012

Я пытаюсь обновить свою базу данных, то есть файл MS Access, я хочу обновить свою таблицу, взяв значения из текстовых полей, но я не могу написать правильный запрос.

Может кто-нибудь помочь мне написать правильный запрос на обновление?

string strconn4 = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|pay.accdb";

OleDbConnection sqlconn4 = new OleDbConnection(strconn4);
sqlconn4.Open();    
OleDbCommand ocmd = new OleDbCommand("UPDATE fees SET fname=" + Convert.ToString(textBox2.Text) + ",lname=" + Convert.ToString(textBox3.Text) + ",amtpayd=" + Convert.ToString(textBox4.Text) + ",amtleft=" + Convert.ToString(textBox5.Text) + ",disc=" + Convert.ToString(textBox6.Text) + ",pdate=" + Convert.ToString(dateTimePicker3.Text) + ",rdate=" + Convert.ToString(dateTimePicker1.Text) + ",WHERE memid=" + Convert.ToString(textBox1.Text), sqlconn4);

Ответы [ 2 ]

1 голос
/ 11 февраля 2012

Ваш код подвержен SQL-инъекциям , что является очень серьезной проблемой безопасности!

Вместо этого следует использовать параметризованные запросы.

Некоторые ссылки о том, как создавать такие запросы, включая ссылки и примеры:

0 голосов
/ 11 февраля 2012

Как это

   string sql=string.Format("UPDATE Table1 SET column1='{0}',column2='{1}' where id={2}",tbx1.text,tbx2.text,tbx3.text);
    SqlConnection conn = new SqlConnection();
    conn.ConnectionString = strconn4;
      SqlCommand cmd = new SqlCommand();
             cmd.CommandText = sql;
             cmd.Connection = conn;
    conn.Open();
    cmd.ExecuteNonQuery();
    conn.Close();
...