【问题标题】:Could not show content of a table in SQL server to C# Gridview无法将 SQL Server 中表的内容显示到 C# Gridview
【发布时间】:2017-02-25 01:24:43
【问题描述】:

我想在 ASP.net 中将我的数据库中的表(“newexample”)的内容显示到 ASP.net 中的 gridview,但 gridview 什么也没显示。如何解决?

代码如下:

protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)
        {
            string cs = ConfigurationManager.ConnectionStrings["SampleDBCS"].ConnectionString;
            SqlConnection con = new SqlConnection(cs);
            SqlCommand cmd = new SqlCommand("select * from newexample", con);

            DataTable dt = new DataTable();
            dt.Columns.Add("col0");
            dt.Columns.Add("col1");
            dt.Columns.Add("col2");

            con.Open();
            SqlDataReader rdr = cmd.ExecuteReader();
            while (rdr.Read())
            {
                DataRow dr = dt.NewRow();
                dr["col0"] = rdr["col0"];
                dr["col1"] = rdr["col1"];
                dr["col2"] = rdr["col2"];

                dt.Rows.Add(dr);
            }
            con.Close();

            GridView1.DataSource = dt;
            GridView1.DataBind();
        }
    }
}

}

【问题讨论】:

  • 能否添加页面代码?
  • 这段代码运行良好,页面一定有问题

标签: c# asp.net sql-server gridview


【解决方案1】:

你有什么异常吗?尝试在DataBind() 之后移动con.Close(),看看效果如何。

【讨论】:

    【解决方案2】:

    尝试使用下面的代码:

    DataSet dataSet = new DataSet("newexample");
    SqlDataAdapter dataAdapter = new SqlDataAdapter("select * from newexample", connectionString);
    dataAdapter.Fill(dataSet);
    
    
       if (dataSet != null)
       {
        if (dataSet.Tables[0].Rows.Count != 0)
        {
            GridView1.DataSource = dataSet ;
            GridView1.DataBind();
        }
        else
        {
            GridView1.DataSource = null;
            GridView1.DataBind();
        }
    }
    

    这是一种更好的方法,因为SqlDataAdapter 会照顾SqlConnection。它负责创建连接并在操作结束时以最佳方式关闭它。

    这不是经过测试的代码,所以如果您有任何问题,请告诉我..

    【讨论】:

    • 感谢您的回答 Rajmond Burgaj,但 gridview 也没有显示任何内容。我对此不确定: DataSet dataSet = new DataSet("newexample");或者我的数据库连接有问题。
    猜你喜欢
    • 2021-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-22
    相关资源
    最近更新 更多