标题:请问datatable添加行?
只看楼主
zhanglindezz
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2004-11-3
 问题点数:0 回复次数:5 
请问datatable添加行?

我想用datatable做个购物车,点击"购物"在datable中添加购物清单,但是我的“购物”按钮的onclick子程序:

public Sub Add(s As object,e As EventArgs) Dim drowProduct As DataRow Dim dtblProduct As DataTable dtblProduct = dstProduct.Tables("ShoppingCart") ##Object reference not set to an instance of an object.## drowProduct = dtblProduct.NewRow drowProduct("product_ID") = ProductID drowProduct("product_name") = ProductName drowProduct("product_price") = ProductPrice dstProduct.Tables("ShoppingCart").rows.add(drowProduct) UpdateShoppingCart() dgrdProduct.DataSource = dstProduct dgrdProduct.DataBind() End Sub 出现:Object reference not set to an instance of an object 我的page_Load如下:

dstProduct = New DataSet() conNewProduct = New SqlConnection("Server = localhost;Trusted_Connection = SSPI;Database = newproduct") dadProduct = New SqlDataAdapter("Select product_ID,product_name,product_price from product where product_ID = @ProductID",conNewProduct) dadProduct.Selectcommand.Parameters.Add("@ProductID",intProductID) dadProduct.MissingSchemaAction = MissingSchemaAction.AddWithKey cbProduct = New SqlCommandBuilder(dadProduct) dadProduct.Fill(dstProduct,"ShoppingCart") 'dtblProduct = dstProduct.Tables("ShoppingCart") dgrdProduct.DataSource = dstProduct dgrdProduct.DataBind() 请教!我被这个问题困了2个星期了,查资料,翻书,上面这两个子程序简直都是书上照瓢画葫芦~~~~还是不行。请诸位大哥大姐,看贴的老少爷们,帮帮我,我喊您大爷!!!

搜索更多相关主题的帖子: datatable 
2004-11-04 22:07
zhanglindezz
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2004-11-3
得分:0 

求求大爷~~求求大爷~~赏点饭吃~~

2004-11-04 22:15
水易雨辰
Rank: 1
等 级:新手上路
帖 子:177
专家分:0
注 册:2004-4-15
得分:0 

未将对象引用到实例

你的dstProduct.Tables("ShoppingCart")还不存在吧,你加个断点调试一下看看,有没有值


授人以鱼,不如授人以渔!
2004-11-04 22:23
zhanglindezz
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2004-11-3
得分:0 
我的page_Load如下:

dstProduct = New DataSet() conNewProduct = New SqlConnection("Server = localhost;Trusted_Connection = SSPI;Database = newproduct") dadProduct = New SqlDataAdapter("Select product_ID,product_name,product_price from product where product_ID = @ProductID",conNewProduct) dadProduct.Selectcommand.Parameters.Add("@ProductID",intProductID) dadProduct.MissingSchemaAction = MissingSchemaAction.AddWithKey cbProduct = New SqlCommandBuilder(dadProduct) dadProduct.Fill(dstProduct,"ShoppingCart") dtblProduct = dstProduct.Tables("ShoppingCart") dgrdProduct.DataSource = dstProduct dgrdProduct.DataBind()

End Sub

我的page_load可以实现这个“datatable”,页面上可以显示出来。但是一点击“购物”按钮触发Add子程序,就显示错误。

2004-11-05 12:50
zhangchengzhen
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2004-10-17
得分:0 

你是着用两个页面吧,那样更清楚。

为购物车新建一个页面,调用时把ProId传递过来就可以了。(例如:AddToCard.aspx?ProId=14)

然后根据传递过来的id号进行数据库查询,生成DbGridTable.

2004-11-07 15:21
zhanglindezz
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2004-11-3
得分:0 

谢谢你,不过我还是想把购物车放在页面里,再说打开新页面,再从数据库或缓存读,挺麻烦的,还影响速度。

我又弄了一个新的,这次我简化了一下,让大家看得清楚些。下面的程序,点击“Add”增加了一个行,点击“AddOther”增加行的时候,“Add”增加的行就没有了。我想让这两个行都显示在页面里面。

<%@ Page Language="VB" %> <%@ import Namespace="System.Data" %> <script runat="server">

Dim dtblCart As DataTable Dim dcolColumn As DataColumn Dim dvwCart As DataView Sub Page_Load ' Create DataTable dtblCart = New DataTable( "Cart" ) Dim drowItem As DataRow ' Create Columns dcolColumn = New DataColumn( "ProductID", GetType( Int32 ) ) dtblCart.Columns.Add( dcolColumn ) dcolColumn = New DataColumn( "ProductName", GetType( String ) ) dtblCart.Columns.Add( dcolColumn ) dcolColumn = New DataColumn( "ProductCategory", GetType( String ) ) dtblCart.Columns.Add( dcolColumn ) dcolColumn = New DataColumn( "ProductPrice", GetType( Decimal ) ) dtblCart.Columns.Add( dcolColumn ) End SUb Sub Add(s As object,e As EventArgs) Dim drowItem As DataRow drowItem = dtblCart.NewRow() drowItem(0) = 0 drowItem(1) = 1 drowItem(2) = 2 drowItem(3) = 3 dtblCart.Rows.Add(drowItem) dvwCart = dtblCart.Defaultview dgrdCart.DataSource = dvwCart dgrdCart.DataBind() End Sub

Sub AddOther(s As object,e As EventArgs) drowItem = dtblCart.NewRow() drowItem(0) = "11" drowItem(1) = "c" drowItem(2) = "v" drowItem(3) = "22" dtblCart.Rows.Add(drowItem) dvwCart = dtblCart.Defaultview dgrdCart.DataSource = dvwCart dgrdCart.DataBind() End Sub </script> <html> <head> </head> <body> <form runat="server"> <asp:DataGrid id="dgrdCart" Runat="Server"></asp:DataGrid> <asp:linkButton id="btnAdd" onclick="Add" Runat="Server" Text="Add"/> <asp:LinkButton id = "btnAddOther" OnClick = "AddOther" Runat = "Server" Text = "AddOther"/> </form> </body> </html> 请指点一下!谢谢!

2004-11-07 15:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-7124-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.085282 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved