我正在用c#(visualstudio2017)和mysql数据库构建一个配置表单。我想在数据库中存储文件夹路径。我得到一个“连接必须有效并打开”错误,但当我注解掉“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();
}
2条答案
按热度按时间bybem2ql1#
当你发表评论的时候
cmd2.ExecuteNonQuery();
什么都没有发生,所以不太可能出错;-)连接必须有效且打开
此错误表示没有绑定到命令的打开连接对象。尽管您打开了连接,但从未将其分配给命令(不同的命令可能有不同的连接)。
所以;您需要将连接分配给命令:
或者,更常见的情况是,在构造命令时:
1szpjjfi2#
连接必须有效并且open始终表示
MySqlCommand
未关联到任何活动连接ExecuteNonQuery()
方法执行或正确MySqlConnection
示例从未提供给相应的命令,即使连接已经打开。因此,最好设置
UPDATE
以便于阅读:或设置
CommandText
以及Connection
属性(也包括参数,完全避免连接值):请注意
using
语句可用于在成功更新后立即释放连接对象。