如果if语句是真的,如何关闭mysql连接?

时间:2017-02-19 10:02:02

标签: mysql asp.net try-catch

我是ASP.NET的新手,我坚持这个问题。我收到错误: 错误:System.InvalidOperationException:未关闭连接。连接的当前状态是打开的。在System.Data.ProviderBase.DbConnectionInternal。 这是我的代码,错误指向'while'语句。我尝试了很多东西,但没有任何效果。我知道当if语句为true但不知道如何时我需要关闭连接。谁可以帮我这个事?感谢。

protected void loadtour()
    {
        try
        {

            conn.Open();
            string strSelect = "Select * From Agents where Agent_ID='" + AgID.Text + "'";
            SqlCommand cmd = new SqlCommand(strSelect, conn);
            SqlDataReader myReader = cmd.ExecuteReader();

            while (myReader.Read())
            {
                if (myReader["Agent_Status"].ToString() == "On Tour")
                {
                    Label1.Text = "Assigned Tour Details:";
                    try
                    {
                        conn.Open();
                        SqlDataAdapter da = new SqlDataAdapter("SELECT PackageInfo.pkg_Name, PackageInfo.pkg_Type, PackageInfo.pkg_Status, Packages.pkg_Country, Packages.pkg_Start, Packages.pkg_End, PackageInfo.Agent_ID, PackageInfo.Agent_Name FROM PackageInfo INNER JOIN Packages ON PackageInfo.pkg_ID = Packages.pkg_ID WHERE(PackageInfo.Agent_ID = '" + AgID.Text + "')", conn);
                        DataTable ds = new DataTable();
                        da.Fill(ds);
                        gv1.DataSource = ds;
                        gv1.DataBind();

                    }
                    catch (Exception ex)
                    {
                        Response.Write("Error:" + ex.ToString());
                    }
                    conn.Close();

                }


                else
                {
                    Label1.Text = "No Tour Assigned Yet!";
                }

                myReader.Close();
                conn.Close();

            }
        }

        catch (Exception ex)
        {

            Response.Write("Error:" + ex.ToString());
        }

    }

1 个答案:

答案 0 :(得分:0)

using (var connection = new SqlConnection(connectionString))
{
  connection.Open();
  //Do stuff with the connection
}

将您的连接包裹在using块中。这保证了它总是被关闭。