2017-06-29 75 views
0

正如标题所说,我试着写一些事先准备好的声明上的Visual Studio 2017年 但是从我的程序的时候,我有一个例外,被称为入门连接属性尚未设置错误

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

在此先感谢

回答

2

你没有设置你的命令的连接属性:虽然它建议使用

cmd.Connection = conn; 

using-statement提供了一个方便的语法,以确保正确使用IDisposable对象SqlConnection。它也将关闭连接

+0

谢谢! 我忘了这条线耶,非常感谢! 我现在有一个错误,但它更容易解决:我有一个自动增量列,并且我不知道在准备好的语句中写什么来使其工作。 我会在网上检查这个。 –

相关问题