C# 在ASP.Net中将数据库数据绑定到GridView

C# 在ASP.Net中将数据库数据绑定到GridView,c#,asp.net,C#,Asp.net,我尝试在c和asp.net中将数据库数据绑定到gridview。但是我在gridview中看不到数据。行被添加到gridview中,但它们是空的。当我在SQLServer中运行该查询时,它给出了正确的结果。我没有向asp部分添加或更改任何代码。我应该吗?我找不到问题出在哪里:请帮忙 myConnection = WebConfigurationManager.ConnectionStrings["KutuphaneConnectionString"].ConnectionString; conn

我尝试在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();

观察绑定后触发的另一个事件,该事件可能正在清除行

尝试创建一个数据集,并使用Fill填充该数据集。我从未见过在DataTable上使用Fill,在MSDN上也找不到这种特殊的重载。不过,我怀疑这样的重载不会修改DataTable的现有模式,因为它只是在您的示例中使用之前创建的,这意味着它没有列。

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

以下是正确答案:

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中使用了模板字段。自动生成的字段也应为true。我希望这对那些有同样问题的人有所帮助

我不这么认为。。我写了page_load类,它们是页面显示的最后几句话。我尝试了这一点,但它也给出了相同的结果:字符串komut=SELECT K.ad,K.yazar,K.baskiNo,O.sonTeslimTarihi来自Odunceslemleri O,Kitap K其中O.kullanicid=+Session[id]+和O.kitapId=K.id;;SqlCommand cmd=new-SqlCommandkomut,connect;SqlDataAdapter=新的SqlDataAdaptercmd;数据集ds=新数据集;适配器。填料,Kitap;GridView1.DataSource=ds;GridView1.1数据绑定;使用GridView1.DataSource=ds.Tables0;,怎么样?您应该提供GridView的aspx部分。你是吗?此外,记住不要在回发中从页面加载重新绑定GridView。所以一定要检查一下!在数据绑定网格之前,Page.IsPostback。如何?你能在代码示例中解释一下吗?首先用你问题中缺少的aspx部分来完成。你想解释什么部分?GridView属性AutoGenerateColumns是自我解释的,此外,我还提供了一个链接。方法也很简单。