Help!接続が閉じられていないと表示されます。接続の現在の状態はopeですが、私はそれを閉じました、pls助けてください?事前にありがとう接続が閉じられませんでした。接続の現在の状態は開いています
private void inserttransaction()
{
for (int i = 0; i < dataPOS.Rows.Count; i++)
{
con.Open();
dataPOS.Rows[i].Selected = true;
cmd = new SqlCommand(@"INSERT INTO TRANSACTIONS (TransactionCode,TransactionDate,ItemCode,ItemName,Quantity,Price,Total)
VALUES
('"+ dataPOS.SelectedRows[0].Cells[0].Value.ToString() +"' , '"+ dataPOS.SelectedRows[0].Cells[1].Value.ToString() +"' , '"+ dataPOS.SelectedRows[0].Cells[2].Value.ToString() +"' , '"+ dataPOS.SelectedRows[0].Cells[3].Value.ToString()+"' , '"+ dataPOS.SelectedRows[0].Cells[4].Value.ToString() +"' '"+ dataPOS.SelectedRows[0].Cells[5].Value.ToString() +"' , '"+ dataPOS.SelectedRows[0].Cells[6].Value.ToString() +"')", con);
cmd.ExecuteNonQuery();
dataPOS.Rows[i].Selected = false;
con.Close();
}
}
あなたの接続を 'using'ブロックに囲んで閉じてください。あなたの 'ExecuteNonQuery'が例外を投げた場合、どうなるでしょうか? –
SQLインジェクションを避けるには、SqlCommandでSqlParametersを使用する必要があります。 SqlCommandはusing()ブロック内にある必要があります。接続を一度開いてください(まだ開いていない場合)*ループの外側で、ループを繰り返してから閉じてください。 –
using(SqlConnection connection = new SqlConnection(connectionString)) { //ここにBLを入れてください。 }接続文字列に – Dutt93