为了账号安全,请及时绑定邮箱和手机立即绑定

WPF C# 来回移动 b/w 时出错 两个组合框项目选择

WPF C# 来回移动 b/w 时出错 两个组合框项目选择

C#
慕丝7291255 2021-08-07 16:55:52
我有 02 组合框,如图所示 [组合框] 当我来回移动以选择黑白组合框(类别和型号)时,出现以下错误下面给出了我的 C# 清晰代码        try        {            con.Open();            string CmdString = "select ProductID from Product where ModelNo='" + comboModel.SelectedItem.ToString() + "'";            SqlCommand cmd = new SqlCommand(CmdString, con);            SqlDataAdapter sda = new SqlDataAdapter(cmd);            DataTable dt1 = new DataTable("Product");            sda.Fill(dt1);            foreach (DataRow dr in dt1.Rows)            {                txtProductID.Text = dr["ProductID"].ToString();            }            con.Close();        }        catch (Exception exp)        {            MessageBox.Show(exp.ToString());            con.Close();        }
查看完整描述

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();

    }

}


查看完整回答
反对 回复 2021-08-07
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

摆脱con.Open();. 显然,连接已经从其他地方的较早操作或此代码的先前运行中打开。


话虽如此,除非您需要它们,否则您可能不应该保持连接打开,因为您冒着它们从未正确关闭的风险。您应该使用一次性模式,如下所示:


using (var con = new SqlConnection(myConnStr))

{

    // do your query, etc.

}

这将自动关闭连接并处理资源。


查看完整回答
反对 回复 2021-08-07
  • 2 回答
  • 0 关注
  • 170 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信