c# - 获取连接属性尚未设置错误

标签 c# mysql sql

正如标题所述,我尝试在 Visual Studio 2017 上编写一些准备好的语句。 但是当启动我的程序时,我有一个异常(exception),称为

System.InvalidOperationException :'The connection property has not been set.'

下面是相关代码:

namespace Sequence
{
   class Database
   {
    private MySqlCommand cmd;
    MySql.Data.MySqlClient.MySqlConnection conn;    //new connection

    public void Connect()
    {
        string myConnectionString;  //connection String

        myConnectionString = "server=127.0.0.1;uid=root;" +
    "pwd=;database=internship;";

        try
        {
            conn = new MySql.Data.MySqlClient.MySqlConnection(myConnectionString);
            conn.Open();
        }
        catch (MySql.Data.MySqlClient.MySqlException ex)
        {
            MessageBox.Show(ex.Message);
        }
    }


    public void Disconnect()
    {
        try
        {
            conn.Close();
        }
        catch (MySql.Data.MySqlClient.MySqlException ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

    public void AddData()
    {
        cmd = new MySql.Data.MySqlClient.MySqlCommand();
        //Connecting to database
        Connect();
        try
        {
            //Prepare a statement
            cmd.CommandText = "INSERT INTO storing VALUES(@longitude, @latitude, @status, @path)";
            cmd.Prepare();
            //Adding values
            cmd.Parameters.AddWithValue("@longitude", 0.5);
            cmd.Parameters.AddWithValue("@latitude", 0.5);
            cmd.Parameters.AddWithValue("@status", "false");
            cmd.Parameters.AddWithValue("@path", "C:\\temp\\sequence");
            //Executes the Query
            cmd.ExecuteNonQuery();
            //Writes in Console
            Console.WriteLine("Line added successfully");
        }
        catch (MySql.Data.MySqlClient.MySqlException ex)
        {
            MessageBox.Show("Error " + ex.Number + " has occured: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }



        }

    }
}

这是我连接到数据库的类。 我有一个主程序,我刚刚写了这个:

static class Program
{
    [STAThread]
    static void Main()
    {
        Database db = new Database();
        db.Connect();
        db.AddData();
        db.Disconnect();
    }
}

知道为什么我会收到此异常吗?

我按照此链接上的教程进行操作: https://dev.mysql.com/doc/connector-net/en/connector-net-programming-prepared-preparing.html

提前致谢

最佳答案

您没有设置命令的连接属性:

cmd.Connection = conn;

尽管建议使用 using-statement 提供了一种方便的语法,确保正确使用IDisposable对象,例如SqlConnection。它还将关闭连接

关于c# - 获取连接属性尚未设置错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44827072/

相关文章:

c# - Automapper ResolveUsing 原因 "Can' t 将此解析为可查询表达式”

mysql - 如何在 SQL 中添加/减去上一行?

mysql - mySQL 查询 SELECT * 可以吗?

c# - WPF 数据网格在 c# 中与远程/在线 mysql 绑定(bind)

java.sql.SQLException : ORA-00900: invalid SQL statement in Ecllips

c# - 如何正确处理 C# - C++ 项目交互?

c# - 用 C# 编写的质数检查器

c# - Automapper 能否将复杂的源图映射到目标属性中没有前缀且没有自定义映射的平面目标?

php - 如何将图像从mysql放到php表格单元格中

mysql - SQL - 你能选择特定字符串以几个字符结尾的所有内容吗?