作者linsevenligh (飞天蛙)
看板Visual_Basic
标题[.NET]请问 asp.net与 .net2003 做购物车
时间Tue Oct 17 22:06:51 2006
由於是初学者..所以还有很多地方不懂
恳请各位高手能够指导ㄧ下..感谢~
目前只做到能够读取资料表..可以换页
但要做选择商品和数量加入购物袋时.遇到了问题
ㄧ是SqlConnection1型别未定义..是什麽意思呢..如何解决
二是Table1.Rows(I).Item("数量") = 1
并未将物件参考设定为物件的执行个体 ~ 这又如何解决呢?
这是参考书籍做的...
各位大大还有什麽方法可以做出购物车呢?
使用asp.net与 .net2003
谢谢
以下是商品选购程式码
.............................................................................
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If IsPostBack Then
DataSet11 = Session.Item("ds_Test")
Else
SqlConnection1.Open()
DA_tbTEST.Fill(DataSet11, "buy")
Session.Add("ds_Test", DataSet11)
SqlConnection1.Close()
DataGrid1.DataBind()
End If
If Not IsPostBack Then
Dim Hash As Hashtable
Dim ArrKey(Hash.Count - 1) As String
Dim ArrVal(Hash.Count - 1) As Integer
Dim Products As String
Hash.Keys.CopyTo(ArrKey, 0)
Hash.Values.CopyTo(ArrVal, 0)
Products = "('" & Join(ArrKey, "','") & "')"
Dim Provider = "Provider = Microsoft.Jet.OLEDB.4.0"""
Dim Ds As DataSet, SQL As String, I As Integer
Dim Database = "Data Source =" & Server.MapPath("TTT.mdb")
SqlConnection1 = New SqlConnection1(Provider & ";" & Database)
SqlConnection1.Open()
SQL = "Select * From 商品 Where 编号 In " & Products
DA_tbTEST = New SqlDataAdapter(SQL, SqlConnection1)
Ds = New DataSet
DA_tbTEST.Fill(Ds, "商品")
Dim Table1 As DataTable = Ds.Tables("商品")
Table1.Columns.Add(New DataColumn("购买", GetType(Boolean)))
Table1.Columns.Add(New DataColumn("数量", GetType(Integer)))
For I = 0 To Table1.Rows.Count - 1
Table1.Rows(I).Item("数量") = 1
Next
DataGrid1.DataSource = Table1.DefaultView
DataGrid1.DataBind()
End If
End Sub
Private Sub DataGrid1_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles DataGrid1.PageIndexChanged
DataGrid1.DataSource = CType(Session("DataView"), DataView)
DataGrid1.CurrentPageIndex = e.NewPageIndex
DataGrid1.DataBind()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Hash As Hashtable, I As Integer
Dim cb As CheckBox = DataGrid1.Items(I).FindControl("BuyIt")
Dim lb As Label = DataGrid1.Items(I).FindControl("ProductID")
Dim tb As TextBox = DataGrid1.Items(I).FindControl("Quantity")
If Session("cbuy") Is Nothing Then
Hash = New Hashtable
Else
Hash = Session("cbuy")
End If
For I = 0 To DataGrid1.Items.Count - 1
If cb.Checked And Val(tb.Text) > 0 Then
If Not Hash.ContainsKey(lb.Text) Then
Hash.Add(lb.Text, CInt(Val(tb.Text)))
Else
Hash(lb.Text) += CInt(Val(tb.Text))
End If
End If
Next
Session("cbuy") = Hash
Response.Redirect("WebForm2.aspx")
End Sub
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.171.141.74
1F:推 commiserate:Dim Table1 As New DataTable = Ds.Tables("商品") 10/18 10:32
2F:→ commiserate:更正:你应该把书上 .aspx 中的程式码也copy过去才行 10/18 10:33
3F:→ commiserate:SqlConnection1及Table1应该都是宣告在.aspx中的 10/18 10:34
4F:推 linsevenligh:感谢...晚点来修改...希望能成功.... 10/18 12:46