2012-12-04 241 views
2

我已經嘗試了很多在Internet上的建議,以便運行executeScalar,但出現錯誤ExecuteScalar: Connection property has not been initialized。我的INSERT查詢工作正常,問題與executeScalarExecuteScalar:連接屬性尚未初始化

conn.Open(); 
SqlCommand cmd = new SqlCommand(
    "INSERT INTO Products (Product_Name,Product_BarCode,Product_CP,Product_SP, 
          Product_Countainer,Product_Pcs,Product_MFGDate, 
          Product_ExpiryDate,Product_Grade) 
    Values ('" + Name.Text + "','" + BarCode.Text + "','" + CostP.Value + "','" + 
      SellingP.Value + "','" + Countainer.Value + "','" + Pcs.Value + "','" + 
      MfgDate.Value + "','" + ExpDate.Value + "','" + Grade.SelectedItem + "')", 
    conn); 
cmd.ExecuteNonQuery(); 
conn.Close(); 
conn.Open(); 
cmd.Connection = conn; 
cmd = new SqlCommand("Select SUM(Product_CP) From Products AS Ammount"); 
Ammount = (double)cmd.ExecuteScalar(); 
MessageBox.Show(Ammount.ToString()); 
conn.Close(); 
+0

http://stackoverflow.com/editing-help#code – SLaks

+1

您有一個SQL注入漏洞。 – SLaks

+0

沒問題,它只是一個家庭使用的小應用程序。 沒有互聯網連接。 – alternatefaraz

回答

11
cmd = new SqlCommand(...); 

正如錯誤中明確規定,該命令沒有連接。

+0

謝謝人對不起,我錯誤地錯誤 – alternatefaraz

+2

+1我錯誤地認爲將事務分配給命令就足夠了,因爲事務有連接。但是,不,我需要將命令的連接設置爲命令事務的連接屬性。 –

+0

@KirkKuykendall,我可以理解這種行爲,當'外部使用',但是當'使用'塊內,似乎很明顯什麼連接應該使用。但我想我可以明確表示。 – KingOfAllTrades

0

如果你正在使用的DBCommand代替SqlCommand的,這將不能夠解決問題,因爲的DBCommand是一個抽象類,不能被實例化..

這工作對我來說是解決辦法:我正在使用command.executeScalar(),我必須使用:DbCommand.executeScalar(命令)/ /工程奇蹟!

相關問題