2012-07-24 308 views
1

我有這段代碼,當我運行它時出現此錯誤ExecuteNonQuery:連接屬性尚未初始化。 而我有SQL數據庫。 它的名字是Cost。 我有這個代碼,當我運行它給出了這個錯誤ExecuteNonQuery:連接屬性尚未初始化。 而我有SQL數據庫。 它的名字是Cost。 我的代碼是:ExecuteNonQuery:連接屬性尚未初始化

namespace Accountingss 
{ 
    public partial class WebForm1 : System.Web.UI.Page 
    { 
     public SqlConnection conn; 

     protected void Page_Load(object sender, EventArgs e) 
     { 
     } 

     protected void Connect(string cmdtxt, Hashtable parameters) 
     { 
      conn = new SqlConnection(); 
      string connString = @"Data  Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Cost.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"; 
      conn.ConnectionString = connString; 
      SqlCommand cmd = new SqlCommand(); 
      cmd.CommandText = cmdtxt; 
      cmd.Parameters.Clear(); 
      var ieParams = parameters.GetEnumerator(); 
      while (ieParams.MoveNext()) 
      { 
       cmd.Parameters.AddWithValue(ieParams.Key.ToString(), ieParams.Value.ToString()); 
       //cmd.Parameters.Add(new SqlParameter(ieParams.Key.ToString(), ieParams.Value.ToString())); 
      } 

      conn.Open(); 
      cmd.ExecuteNonQuery(); 

      //SqlDataAdapter costdataAdpater = new SqlDataAdapter(); 
      //DataTable costdataTable = new DataTable(); 
     } 

     protected void Button1_Click(object sender, EventArgs e) 
     { 
      string insert = "INSERT INTO Cost (Type, Amount) VALUES (@type,   @amount)";// +type.Text + ',' + a.Text + ")"; 
      var addpTA = new Hashtable(); 
      addpTA.Add("@type", txtType.Text); 
      addpTA.Add("@amount", txtAmount.Text); 
      Connect(insert, addpTA); 
     } 
    } 
} 
+1

加上'cmd.Connection =康恩;''後CMD的SqlCommand =新的SqlCommand();' – 2012-07-24 09:47:09

+0

錯誤消息稱* *究竟什麼是錯在這裏。 – hvd 2012-07-24 09:47:57

回答

3

您沒有將該命令連接到連接。

cmd.Connection = conn; 

而且在執行命令後,你應該關閉它。

conn.Close(); 
+0

連接未關閉。連接的當前狀態已打開。但是我已經關閉了連接! – Morteza 2012-07-24 10:02:33

1

只需執行

cmd.Connection = conn; 

的Connection對象,提供我們的命令對底層數據庫引擎的工具之前關閉SqlConnection連接到您的SqlCommand。
如果我們想要訪問數據庫,我們需要將它放到我們的命令中。

一個很好的捷徑就是從連接使用這種方法

SqlCommand cmd = conn.CreateCommand(); 
1

你應該通過連接到命令

SqlCommand cmd = new SqlCommand(conn); 

cmd.Connection = conn; 
3

你必須直接創建命令像下面這樣將連接分配給sql命令。看來你忘了這麼做了。

cmd.Connection = conn; 
相關問題