2017-02-25 69 views
0

我想在我的数据库中的SQL服务器中的表格(“newexample”)的内容显示在ASP.net gridview,但gridview什么也没有显示。你能帮我解决吗? 感谢 下面是代码:无法显示SQL Server中的表格内容到C#Gridvew

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(); 
     } 


    } 

} 

}

+0

请问您可以添加页面代码吗? – Usman

+0

这段代码工作正常,页面出现一定有问题 – Usman

回答

0

你得到任何异常?试着在DataBind()之后移动con.Close(),看看它是怎么回事。

+0

您好,我已经尝试过了,但没什么不同! – ThuyN

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。它负责创建连接并在运行结束时以最佳方式关闭连接。

这不是一个测试代码,所以如果您有任何问题,请告诉我。

+0

感谢您的回答Rajmond Burgaj,但gridview也没有显示任何内容。我不确定:DataSet dataSet = new DataSet(“newexample”);或者可能与我的数据库连接有问题。 – ThuyN