0

コーディングしている Web サイトの一部についてサポートが必要です。sqlServerDataSource が入力された listBox_Products があります。製品をクリックすると、対応する画像がグリッド ビューに沿って表示され、productPrice と productName が表示されます。gridview は、コード ビハインドの indexChange イベントで、プログラムによってデータ バインドされます。ボタン addToShoppingCart があります。button_Click イベントで、ユーザーが選択したアイテムをショッピング カート (同じページにあります) に追加したいのですが、ユーザーが選択したアイテムを受け取って表示する 2 番目の gridView があります。これは私が立ち往生しているところです。gridview に追加できないことはわかっており、データバインドする必要があることもわかっています。私のロジックは次のとおりです。ユーザーが選択した最初のアイテムを取得し、それをデータテーブルに追加し、2 番目のグリッドビューに挿入します。ユーザーが別の製品を選択した場合、今回を除いて同じロジックで、新しい行を追加し、新しいデータを新しい行に追加し、古い行も保持します。問題は、これを行う方法がわからないことです。私はデータテーブルの経験があまりありません。

これは私のコードビハインドです。

これは、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

これは、2 番目のグリッドビューにアイテムを追加するための私のコードです。

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

ご覧のとおり、私はかなり迷っています。ロジックは問題ないことはわかっていますが、コードを理解できません。

どんな助けでも大歓迎です。

4

1 に答える 1