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

我有 02 组合框,如图所示 [组合框] 当我来回移动以选择黑白组合框(类别和型号)时,出现以下错误

http://img.mukewang.com/610e4ab00001160c05680518.jpg

下面给出了我的 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();

        }


慕丝7291255
浏览 171回答 2
2回答

慕沐林林

您的连接已在其他地方打开。尝试将其放入 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();    }}

阿波罗的战车

摆脱con.Open();. 显然,连接已经从其他地方的较早操作或此代码的先前运行中打开。话虽如此,除非您需要它们,否则您可能不应该保持连接打开,因为您冒着它们从未正确关闭的风险。您应该使用一次性模式,如下所示:using (var con = new SqlConnection(myConnStr)){    // do your query, etc.}这将自动关闭连接并处理资源。
打开App,查看更多内容
随时随地看视频慕课网APP