6

を実行するためにインターネットで多くの提案を試みましたがexecuteScalar、エラーが発生しますExecuteScalar: Connection property has not been initialized。私のINSERTクエリは正常に動作しています。問題はexecuteScalar.

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 Amount");
Amount = (double)cmd.ExecuteScalar();
MessageBox.Show(Amount.ToString());
conn.Close();
4

3 に答える 3

15
cmd = new SqlCommand(...);

エラーが明確に示すように、このコマンドには接続がありません。

于 2012-12-04T19:16:42.077 に答える
0

SQLCommand の代わりに DBCommand を使用している場合、DBCommand は抽象クラスであり、インスタンス化できないため、これでは問題を解決できません。

私のために働いた解決策は次のとおりです。私は使用しなければならなかったcommand.executeScalar()を使用していました:DbCommand.executeScalar(コマンド)//不思議に動作します!

于 2015-07-17T09:41:58.237 に答える