c#中的使用语句不会关闭连接。为什么?

问题描述 投票:0回答:2

我正在创建一个原始的gridview网页,并且在我的代码中使用了ASP.NET中的“ using”语句,因为我了解到它会自动转换其中的代码,因此我不必使用connect.Close();] >

但是,仍然出现错误:

System.InvalidOperationException:连接未关闭。连接的当前状态为打开。

我尝试放入connection.Close();,但仍然发生相同的错误。

这是我的代码。谁能帮我解决问题?非常感谢

void PopulateGridView()
{
    using (connect)
    {
        connect.Open();
        adapter = new SqlDataAdapter("SELECT * FROM RetailInfo", connect);
        table = new DataTable();
        adapter.Fill(table);
    }

    if(table.Rows.Count > 0)
    {
        RetailInfoGridView.DataSource = table;
        RetailInfoGridView.DataBind();
    } 
    else
    {
        table.Rows.Add(table.NewRow());
        RetailInfoGridView.DataSource = table;
        RetailInfoGridView.DataBind();
        RetailInfoGridView.Rows[0].Cells.Clear();
        RetailInfoGridView.Rows[0].Cells.Add(new TableCell());
        RetailInfoGridView.Rows[0].Cells[0].ColumnSpan = table.Columns.Count;
        RetailInfoGridView.Rows[0].Cells[0].Text = "No record Found";
    }
}

我正在创建一个原始的gridview网页,并且在我的代码中使用ASP.NET中的“ using”语句,因为我了解到它会自动转换其中的代码,因此我不必使用...] >

c# asp.net sql-server using
2个回答
0
投票

一个简单的修复方法是在connect.Open()之前,您可以执行以下操作:

if (connect.State == ConnectionState.Open)
{
    connect.Close();
}

0
投票

替换此部分

© www.soinside.com 2019 - 2024. All rights reserved.