无法在SQL Server中向C#Gridview显示表的内容

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

我想在SQL Server中的数据库中向ASP.net中的gridview显示表(“newexample”)的内容,但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
2个回答
0
投票

你有任何例外吗?尝试在con.Close()之后移动DataBind(),看看它是怎么回事。


0
投票

尝试使用以下代码:

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。它负责创建连接并在操作结束时以尽可能最好的方式关闭它。

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

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