2009-10-26 104 views
1

我是新的ASP.NET,我从来没有使用GridView或DataGrid,但我找不到有用的示例在线如何做我所需要的。我需要在页面上显示一些数据,并且我知道我应该使用GridView,但似乎无法显示任何内容。从DataTable填充GridView

我有以下数据集:

DataSet ds = new DataSet("MyTables"); 
ds.Tables.Add("Users"); 
ds.Tables["Users"].Columns.Add("ID"); 
ds.Tables["Users"].Columns.Add("Name"); 
ds.Tables["Users"].Columns.Add("Email"); 
ds.Tables["Users"].Rows.Add(0,"Ace","[email protected]"); 
ds.Tables["Users"].Rows.Add(1,"Biff","[email protected]"); 
ds.Tables["Users"].Rows.Add(2,"Chuck","[email protected]"); 
ds.Tables["Users"].Rows.Add(3,"Dick","[email protected]"); 
myGrid.DataSource = ds.Tables["Users"].DefaultView; 
myGrid.DataBind(); 

继承人是我的ASP.NET:

<asp:GridView ID="myGrid" runat="server"> 
</asp:GridView> 
+0

您正在添加具有相同ID(2)的Chuck和Dick。 – MusiGenesis 2009-10-26 15:24:54

+1

如果你想获得技术方面的信息,他也会错过他四条线上的关闭对角线。甚至不会像这样构建。 – Chris 2009-10-26 15:31:01

+0

在修复所有我的拼写错误之后,这仍然不起作用。 ASP.NET代码是否正确? – kzh 2009-10-26 16:42:24

回答

0

我在想,你得到一个对象空引用错误。发生的事情是,你在一个名为'add users'的表中创建列,其中没有称为'添加用户'的表。如果你只是改变你有ds.Tables [“添加用户”]的三行,并将其更改为只有ds.Tables [“用户”],一切都应该工作得很好。

希望这对你有用。

+0

我想我应该补充说,你需要在page_load事件中绑定gridview,或者拥有一个包含此绑定代码的方法,并以某种方式调用该方法。 (页面加载,按钮点击等) – Chris 2009-10-29 18:32:43

3

我想你要添加列错误的表。试试这样:

DataSet ds = new DataSet("MyTables"); 
ds.Tables.Add("Users"); 
DataTable userTable = ds.Tables["Users"]; 
userTable.Columns.Add("ID"); 
userTable.Columns.Add("Name"); 
userTable.Columns.Add("Email"); 
userTable.Rows.Add(0,"Ace","[email protected])"; 
userTable.Rows.Add(1,"Biff","[email protected])"; 
userTable.Rows.Add(2,"Chuck","[email protected])"; 
userTable.Rows.Add(2,"Dick","[email protected])"; 
myGrid.DataSource = userTable; 
myGrid.DataBind(); 
0

你引用了两个完全不同的表。创建Table USERS,然后将列添加到名为ADD USERS的表中,然后将行添加到Users表中。当你绑定这个时,什么都不会显示出来。

改变此密码

ds.Tables["Add Users"].Columns.Add("ID"); 
ds.Tables["Add Users"].Columns.Add("Name"); 
ds.Tables["Add Users"].Columns.Add("Email"); 

这个

ds.Tables["Users"].Columns.Add("ID"); 
ds.Tables["Users"].Columns.Add("Name"); 
ds.Tables["Users"].Columns.Add("Email");