将数据库数据绑定到ASP.Net中的GridView

时间:2011-05-13 23:00:51

标签: c# asp.net

我尝试将数据库数据绑定到c#和asp.net中的gridview。但我无法在gridview中看到数据。行被添加到gridview但它们是空的。当我在SQLServer中运行该查询时,它给出了正确的结果。我没有添加或更改任何代码到asp部分。我应该吗?我找不到问题所在:(请帮忙..

myConnection = WebConfigurationManager.ConnectionStrings["KutuphaneConnectionString"].ConnectionString;
connect = new SqlConnection(myConnection);
command = new SqlCommand();
connect.Open();
command.Connection = connect;

 string komut = "SELECT K.ad,K.yazar,K.baskiNo,O.sonTeslimTarihi FROM OduncIslemleri O,Kitap K WHERE O.kullaniciId=" + Session["id"] + " AND O.kitapId = K.id;";
        try
        {
            SqlCommand sqlCommand = new SqlCommand();

                sqlCommand = connect.CreateCommand();
                sqlCommand.CommandText = komut;
                SqlDataAdapter sda = new SqlDataAdapter(sqlCommand.CommandText, connect);
                SqlCommandBuilder scb = new SqlCommandBuilder(sda);
                //Create a DataTable to hold the query results.
                DataTable dTable = new DataTable();
                //Fill the DataTable.
                sda.Fill(dTable);
                GridView1.DataSource = dTable;
                GridView1.DataBind();

        }
        catch (SqlException)
        {
            //Console.WriteLine(e.StackTrace);
        }

reader.Close();
connect.Close();

4 个答案:

答案 0 :(得分:4)

这是正确答案:

myConnection = WebConfigurationManager.ConnectionStrings["KutuphaneConnectionString"].ConnectionString;
connect = new SqlConnection(myConnection);
string sorgu = "select K.ad,K.yazar,K.baskiNo,O.sonTeslimTarihi from Kitap K, OduncIslemleri O where O.kitapId = K.id and O.kullaniciId = "+ Session["id"];
SqlDataAdapter sadp = new SqlDataAdapter(sorgu, connect);
DataSet ds = new DataSet();
sadp.Fill(ds);
this.GridView1.DataSource = ds.Tables[0];
this.GridView1.DataBind();
connect.Close();

我还在Gridview中使用了模板字段。 autogeneratedFields也应该是真的。我希望这对有同样问题的人有所帮助

答案 1 :(得分:0)

注意在绑定之后触发的另一个可能正在清除行的事件

答案 2 :(得分:0)

尝试创建一个DataSet,然后使用Fill填充它。我从未见过在DataTable上使用Fill - 并且在MSDN上找不到特定的重载。但我怀疑,这样的重载不会修改DataTable的现有模式(因为它只是在你的例子中使用之前才​​创建,意味着它没有列)。

答案 3 :(得分:0)

我认为您必须使用BindingSource控件,将其DataSource设置为DataTable,然后将GridView的DataSource设置为BindingSource。