我正在使用MySQL数据库在c#(visual studio 2017)中构建配置表单.我想在数据库中存储文件夹路径.我得到一个"连接必须有效并打开"错误,但当我注释掉"cmd2.ExecuteNonQuery();"时 我没有得到错误.如果你能告诉我我做错了什么,我真的很感激.如果你能给我一个代码示例,它也会很棒.这是我的代码:
private void button5_Click(object sender, EventArgs e)
{
ConnectionStringSettings conSettings = ConfigurationManager.ConnectionStrings["shopmanagerConnectionString1"];
MySqlConnection con = new MySqlConnection(conSettings.ToString());
string a = textBox1.Text;
string b = textBox2.Text;
string c = textBox4.Text;
string escapedPath = a.Replace(@"\", @"\\").Replace("'", @"\'");
string escapedPath1 = b.Replace(@"\", @"\\").Replace("'", @"\'");
string escapedPath2 = c.Replace(@"\", @"\\").Replace("'", @"\'");
MySqlCommand cmd2 = new MySqlCommand("update shopmanager.paths set path_to_clients = '" + escapedPath + "',path_to_employee = '" + escapedPath1 + "',path_to_procedures = '" + escapedPath2 + "';");
try
{
con.Open();
cmd2.ExecuteNonQuery();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
con.Close();
}
Run Code Online (Sandbox Code Playgroud)
当你评论时cmd2.ExecuteNonQuery();没有发生任何事情,所以不太可能出现错误;-)
连接必须有效且开放
此错误表明没有绑定到命令的打开的连接对象.虽然您打开了连接,但您从未将其分配给命令(不同的命令可能具有不同的连接).
所以; 您需要为该命令分配连接:
cmd2.Connection = con;
Run Code Online (Sandbox Code Playgroud)
或者,更常见的是,在构造命令时:
MySqlCommand cmd2 = new MySqlCommand("your sql goes here", con);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33 次 |
| 最近记录: |