Я использую 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); }
}
В чем проблема с этим кодом?
И линии, где вы получите ошибка? – Steve
Запустили ли вы его с помощью отладчика? В какой строке он конкретно вызывает ошибку? Я бы заподозрил 'int id = ...' - что такое тип данных '(int) dataGridView1.SelectedRows [0] .Cells [0] .Value'? – Rhumborl
Предлагаю вам изучить термины «SQL-инъекция» и «параметризованный запрос»; построение вашей строки запроса, как будто это плохая практика, и в какой-то момент укусит вас. –