winforms C# winform中的错误“连接未关闭,连接的当前状态为打开”[已关闭]

piv4azn7  于 2023-03-31  发布在  C#
关注(0)|答案(1)|浏览(175)

**已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。

这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
6小时前关门了。
Improve this question
我写代码保存发票事件,这里是我的代码,我使用listView保存产品信息。我保存客户和发票信息到sql服务器

private void btn_saveBill_Click(object sender, EventArgs e)
        {
            if (listViewBill.Items.Count > 0)
            {
                string connectionString = "Data Source=LAPTOP-494HO5MI\\SQLEXPRESS;Initial Catalog=MobileManagement;Integrated Security=True";
                SqlConnection conn = new SqlConnection(connectionString);
                try
                {
     
                    
                        using (SqlCommand cmd = new SqlCommand("USP_InsertCustomer", conn))
                        {
                            cmd.CommandType = CommandType.StoredProcedure;
                            cmd.Parameters.AddWithValue("@Name", txt_Name.Text);
                            cmd.Parameters.AddWithValue("@PhoneNumber", txt_num.Text);
                            cmd.Parameters.AddWithValue("@ID", txt_ID.Text);
                            cmd.Parameters.AddWithValue("@Address", txt_addr.Text);
                        conn.Open();
                            cmd.ExecuteNonQuery();
                        }

                    //USP ThemHD
                    using(SqlCommand cmd1 = new SqlCommand("USP_InsertBill", conn))
                    {
                        cmd1.CommandType = CommandType.StoredProcedure;

                        cmd1.Parameters.AddWithValue("@ID", SqlDbType.VarChar).Value = txt_ID.Text;
                        cmd1.Parameters.AddWithValue("@Total", SqlDbType.Int).Value = int.Parse(txtTotal.Text);
                        conn.Open();
                        cmd1.ExecuteNonQuery();
                    }

    
                    for (int i = 0; i < listViewHoaDon.Items.Count; i++)
                    {

                        SqlCommand cmdCT = new SqlCommand("USP_Details", conn);
                        cmdCT.CommandType = CommandType.StoredProcedure;
                        cmdCT.Parameters.AddWithValue("@ProductName", SqlDbType.VarChar).Value = listViewBill.Items[i].SubItems[0].Text;
                        cmd.ExecuteNonQuery();

                    }
                    conn.Close();
                    MessageBox.Show("Create Successfully");
                }

                catch (Exception ee)

                {
                    MessageBox.Show(ee.Message);
                }
            

            }
            else
            {
                MessageBox.Show("Please add product");
            }
        }

也许我在一些商店程序上错了。
请指出错误并为我改正。我是C#的新手,正在尝试做一个小项目来学习

kmynzznz

kmynzznz1#

如果你打开你的连接你必须关闭它,但当你使用语句你不必使用conn.open();如果你使用它,你必须使用conn.Close();
根据你的错误,连接是打开的,然后用conn.Close()关闭它;

相关问题