我需要帮助我正在编码的网站的一部分。我有一个listBox_Products,其中填充了sqlServerDataSource。当我点击某个产品时,它会在gridview上显示带有productPrice和productName的相应图片。 gridview以编程方式在indexChange事件上以编程方式进行数据绑定。我有一个按钮,addToShoppingCart。在button_Click事件中,我想将用户选择的项目添加到购物车(它在同一页面上),我有第二个gridView,它接收用户选择的项目并显示它。这就是我被困住的地方。我知道我无法附加到gridview,我知道它必须是数据绑定。我的逻辑是:获取用户选择的第一个项目,将其添加到数据表,插入第二个gridview。现在,如果用户选择另一个产品,相同的逻辑,除了这次,我会添加一个新行,并将新数据添加到新行,同时保留旧行。问题是我无法弄清楚如何做到这一点。我在数据表方面不是很有经验。
这是我背后的代码。
这是我从sql server获取产品的代码:
Private Sub GetProducts()
Dim TechShopConnectionString As String = ConfigurationManager.ConnectionStrings("Zapata_IT_DataBaseConnectionString").ConnectionString
Dim TechCon As New SqlConnection(TechShopConnectionString)
Dim TechCmd As New SqlCommand()
Dim index As Integer = ListBox_Products.SelectedIndex()
TechCmd.CommandType = CommandType.StoredProcedure
TechCmd.CommandText = "GetAllProductInformationByID"
TechCmd.Parameters.Add("@ProductID", SqlDbType.Int).Value = index
TechCmd.Connection = TechCon
Try
TechCon.Open()
GridView2.EmptyDataText = "No Records Found"
GridView2.DataSource = TechCmd.ExecuteReader()
GridView2.DataBind()
Catch ex As Exception
Throw ex
Finally
TechCon.Close()
TechCon.Dispose()
End Try
End Sub
这是我将代码添加到第二个gridview的代码:
Protected Sub Button_AddToCart_Click(sender As Object, e As EventArgs) Handles Button_AddToCart.Click
Dim conn As SqlConnection = Nothing
Dim index As Integer = ListBox_Products.SelectedIndex()
Try
Dim connString As String = ConfigurationManager.ConnectionStrings("Zapata_IT_DataBaseConnectionString").ConnectionString
conn = New SqlConnection(connString)
Dim cmd As SqlCommand = New SqlCommand()
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "GetAllProductInformationByID"
cmd.Parameters.Add("@ProductID", SqlDbType.Int).Value = index
cmd.Connection = conn
conn.Open()
Dim dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)
Dim dr2 As DataRow
dataTableCheckOut.NewRow()
dataTableCheckOut.Load(dr, LoadOption.OverwriteChanges)
GridView_CheckOut.DataSource = dataTableCheckOut
GridView_CheckOut.DataBind()
Catch ex As SqlException
Catch ex As Exception
Finally
conn.Close()
End Try
' Enter code here
你可以看到我很丢失。我知道逻辑很好,但我无法弄清楚代码。
任何帮助都将不胜感激。
答案 0 :(得分:0)
如果要在页面之间保留有关用户购物车中的内容的信息(您应该这样做),则应将用户购物车中的项目保存到数据库中。如果您去Amazon.Com,添加一些东西到您的购物车,然后再回来,即使在另一个compter,您可以根据您的登录信息查看购物车中的商品。
由于您知道如何从数据库中读取数据,因此这应该很容易。只需将信息添加到这个新的购物车表中,并在需要时阅读。也许每个页面都会显示项目数量,您只需要计算,但在查看结账时,您需要显示所有信息。