我正在尝试将值添加到数据库中,但每次我尝试添加一些东西时,我都会收到错误消息“连接必须有效且打开。”

Posted

技术标签:

【中文标题】我正在尝试将值添加到数据库中,但每次我尝试添加一些东西时,我都会收到错误消息“连接必须有效且打开。”【英文标题】:I'm trying to add values into database, but every time I try to add some thing i get an error 'Connection must be valid and open.' 【发布时间】:2018-12-09 07:12:00 【问题描述】:

这是我得到的错误:

enter image description here

使用此代码:

private void button1_Click_1(object sender, EventArgs e)

    if (txtID.Text == "" || txtName.Text == "" || txtMobileNo.Text == "")
    
        MessageBox.Show("Please Enter all of your detail.", "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop);
    
    else
    
        string query = "INSERT INTO tablemm (id,Name,MobileNo) VALUES ('" + txtID.Text + "','" + txtName.Text + "','" + txtMobileNo.Text + "')";

        OpenConnection();

        mysqlCommand ObjCommand = new MySqlCommand(query, ObjConnection);
        ObjCommand.ExecuteNonQuery();

        this.CloseConnection();
    

【问题讨论】:

SQL-Injection 警报! 发布完整代码! ObjConnection 和 OpenConnection() 方法代码 也不要链接图片,它会让我们点击,我们讨厌点击 //全局变量 private MySqlConnection ObjConnection;私有字符串服务器、数据库、uid、密码; //初始化连接 private void InitializeConnection() server = "localhost";数据库=“表”; uid = "根";密码 = "";字符串 connectionString = "SERVER=" + 服务器 + ";" +“数据库=”+数据库+“;” + "UID=" + uid + ";" + "密码=" + 密码 + ";"; ObjConnection = new MySqlConnection(connectionString); private bool OpenConnection() try ObjConnection.Open();返回真; catch (MySqlException ex) switch (ex.Number) case 0: MessageBox.Show("Can not connect to server");休息; case 1045: MessageBox.Show("无效的用户名/密码");休息; 返回假; 【参考方案1】:

你可能忘记打电话给Open

MySqlCommand myCommand = new MySqlCommand(myExecuteQuery, myConnection);
myCommand.Connection.Open();  // wallah 
myCommand.ExecuteNonQuery();
myConnection.Close();

尽可能使用using 声明,

免责声明:这仅用于演示目的,我不对您使用此代码造成的伤害和伤害的人负责

【讨论】:

你怎么知道,他/她没有在OpenConnection();方法中调用Open 是的,他实际上是对的,但现在弹出另一个问题 MySql.Data.MySqlClient.MySqlException: '主机 localhost 不支持 SSL 连接。' @imzia99 这基本上是另一个问题,尽管这可能会帮助你***.com/questions/45086283/…【参考方案2】:

我相信您的INSERT 语句应该在您打开与数据库的连接之后在您关闭它之前。

【讨论】:

你是认真的吗? 是的,它是在打开连接之后,实际上是在结束

以上是关于我正在尝试将值添加到数据库中,但每次我尝试添加一些东西时,我都会收到错误消息“连接必须有效且打开。”的主要内容,如果未能解决你的问题,请参考以下文章

添加到 Erlang 中的现有值

将值和数组添加到 PDO 执行方法

Firestore 将值添加到数组字段

当我尝试从网页添加 DOM 元素时,我的数组得到 0 值,如何将值添加到 .each 函数中的列表?

问题将元素添加到列表

如果选中,则反应复选框将值添加到数组