2015-12-13 3 views
-4

Я использую Microsoft Visual Studio Community версии 2015 года. В этой проблеме было много вопросов, но моя проблема не была полностью им охвачена. В основном я работаю в Windows Form Application (C#) с базой MySql (phpmyadmin - wamp). Я создаю простое приложение для форм Windows, чтобы получить Input, Update/Delete data, Отобразить элементы в представлении Grid и просмотреть любую запись. Мне приходится сталкиваться с проблемой при обновлении записи. Компилятор постоянно дает мне ту же ошибку, то есть; Msgstr "Указанное вложение недействительно". Мой код приведен ниже: .«Указанная передача недействительна» Ошибка в приложении WinForm

private void button_update(object sender, EventArgs e) 
{ 
try 
    { 
    MySqlConnection cn = new MySqlConnection("server=localhost;port=3306;database=hyder;uid=root;Encrypt=false;AllowUserVariables=True;Usecompression=True;"); 
    int id = (int)dataGridView1.SelectedRows[0].Cells[0].Value; 
    cn.Open(); 
    MySqlCommand cmd = new MySqlCommand(); 
    cmd.Connection = cn; 
    cmd.CommandType = CommandType.Text; 
    cmd.CommandText = "update record set r_name='" + textBox1.Text + "',r_address='" + textBox2.Text + "',r_phone='" + textBox3.Text + "',r_comment='" + textBox4.Text + "' where r_id='" + id; 
    cmd.ExecuteNonQuery(); 
    MessageBox.Show("Record Updated!"); 
    cn.Close(); 
} 
catch (Exception x) { MessageBox.Show("Error:" + x.Message); } 
} 

В чем проблема с этим кодом?

+1

И линии, где вы получите ошибка? – Steve

+0

Запустили ли вы его с помощью отладчика? В какой строке он конкретно вызывает ошибку? Я бы заподозрил 'int id = ...' - что такое тип данных '(int) dataGridView1.SelectedRows [0] .Cells [0] .Value'? – Rhumborl

+1

Предлагаю вам изучить термины «SQL-инъекция» и «параметризованный запрос»; построение вашей строки запроса, как будто это плохая практика, и в какой-то момент укусит вас. –

ответ

0

Попробуйте заменить

int id = (int)dataGridView1.SelectedRows[0].Cells[0].Value; 

с

int id = Convert.ToInt32(dataGridView1.SelectedRows[0].Cells[0].Value); 
+0

Thanx .. Это сработало! –

Смежные вопросы