簡體   English   中英

獲取連接屬性未設置錯誤

[英]Getting the connection property has not been set error

如標題中所述,我嘗試在Visual Studio 2017上編寫一些准備好的語句。但是在啟動程序時,我有一個異常,稱為

System.InvalidOperationException:'尚未設置連接屬性。

這是相關的代碼:

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/zh/connector-net-programming-prepared-preparing.html

提前致謝

您沒有設置命令的連接屬性:

cmd.Connection = conn;

盡管建議使用using-statement ,該using-statement 提供方便的語法,以確保正確使用IDisposable對象(SqlConnection 也會關閉連接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM