2 回答

TA貢獻2016條經驗 獲得超9個贊
您的連接已在其他地方打開。嘗試將其放入 using 塊,這樣它將被自動處理并且是連接的最佳實踐:
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string CmdString = "select ProductID from Product where ModelNo='" +
comboModel.SelectedItem.ToString() + "'";
SqlCommand cmd = new SqlCommand(CmdString, connection);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt1 = new DataTable("Product");
sda.Fill(dt1);
foreach (DataRow dr in dt1.Rows)
{
txtProductID.Text = dr["ProductID"].ToString();
}
}

TA貢獻1862條經驗 獲得超6個贊
擺脫con.Open();. 顯然,連接已經從其他地方的較早操作或此代碼的先前運行中打開。
話雖如此,除非您需要它們,否則您可能不應該保持連接打開,因為您冒著它們從未正確關閉的風險。您應該使用一次性模式,如下所示:
using (var con = new SqlConnection(myConnStr))
{
// do your query, etc.
}
這將自動關閉連接并處理資源。
- 2 回答
- 0 關注
- 199 瀏覽
添加回答
舉報