【发布时间】:2016-03-19 04:31:24
【问题描述】:
我使用的是 Microsoft Visual Studio Community 2015 版。关于这个问题有很多问题,但我的问题并没有完全涵盖。基本上我正在使用 MySql(phpmyadmin - wamp) 数据库在 Windows 窗体应用程序 (C#) 中工作。我正在创建一个简单的 Windows 窗体应用程序来获取输入、更新/删除数据、在数据网格视图中显示元素并搜索任何记录。我在更新记录时遇到问题。编译器不断给我同样的错误,即; “指定的演员阵容无效”。我的代码如下: .
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); }
}
这段代码有什么问题?
【问题讨论】:
-
你得到错误的那一行是?
-
你用调试器运行过吗?它专门在哪一行引发错误?我怀疑
int id = ...-(int)dataGridView1.SelectedRows[0].Cells[0].Value的数据类型是什么? -
我建议你研究一下“SQL注入”和“参数化查询”这两个术语;像这样构建你的查询字符串是不好的做法,并且会在某些时候咬你。
-
已经咬了,看看id后面少了的右引号...
-
这是运行时错误还是编译器错误?剂量项目构建,当您单击更新按钮时会引发错误?