为什么此代码未在浏览器中显示 table?

Why this code is not showing table in browser?

在下面的 asp c# 代码中,我尝试使用 SqlDataReader 显示数据库 table 的内容,但它不起作用。此代码仅处理按钮单击事件。我怎样才能让它发挥作用?

protected void Button2_Click(object sender, EventArgs e)
    {
        GridView1.DataSource = null;
        GridView1.DataBind();
        string CS = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
        using (con)
        {
            con.ConnectionString = CS;
            DataTable dTbl = new DataTable();
            dTbl.Columns.Add("ID");
            dTbl.Columns.Add("Name");
            dTbl.Columns.Add("Salary");
            SqlCommand vmd = new SqlCommand();
            vmd.Connection = con;
            vmd.CommandText = "select * from [dbo].[employee]";
            con.Open();
            SqlDataReader dr = vmd.ExecuteReader();
            while (dr.Read())
            {
                DataRow dRow = dTbl.NewRow();
                dRow["ID"] = dr[0];
                dRow["Name"] = dr[1];
                dRow["Salary"] = dr[2];
                dTbl.Rows.Add(dRow);
            }
        }
    }

while代码块后添加

GridView1.DataSource = dTbl;
GridView1.DataBind();

并从您的代码开头删除 GridView1.DataBind();

你不需要这一行。从代码开头删除它:

GridView1.DataBind();//Remove

然后将这两行放在 While 循环之后:

GridView1.DataSource = dTbl;
GridView1.DataBind();

编辑: 你也可以像这样更简单:

string CS = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
using (SqlConnection con = new SqlConnection(CS))
{
      try
      {
           con.Open();
           SqlCommand command = new SqlCommand("select * from [dbo].[employee]", con);
           SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);
           GridView1.DataSource = reader;
           GridView1.DataBind();
       }
       catch
       {
         //Handle error
       }
}