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 关注
- 170 浏览
添加回答
举报