halo22 Ответов: 1

Как умножить значение в текстовом поле и столбце в listview?


Я не знаком с vb.net. Итак, то, что я пытаюсь сделать, - это когда я нажимаю на выбранный продукт и ставлю кол-во. Общая цена покажет умноженное значение кол-во и цены в listview. Я помещаю код в Случай 2, так как это цена, но когда я запускаю его, он показывает 0, а когда я меняю его на значение 2, он не умножается. Вот мой код до сих пор:

Что я уже пробовал:

Imports System.Data.SqlClient
Imports System.IO

Public Class Form2
    Dim con As SqlConnection = New SqlConnection("server=.\SQL;database=try;Trusted_Connection=TRUE")
    Dim cmd As SqlCommand
    Dim cmd2 As SqlCommand
    Dim rdr As SqlDataReader

    Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        con.Open()
        con.Close()

        list()

    End Sub
    Sub list()
        con.Open()


        cmd = New SqlCommand("SELECT * FROM ProductTable", con)
        rdr = cmd.ExecuteReader
        ListView1.Items.Clear()
        If rdr.HasRows Then
            Do While rdr.Read()
                Dim arr As String() = New String(2) {}
                Dim itm As ListViewItem

                arr(0) = rdr("productID")
                arr(1) = rdr("product")
                arr(2) = rdr("price")

                itm = New ListViewItem(arr)
                ListView1.Items.Add(itm)


            Loop

        End If

        con.Close()
    End Sub
    Private Sub ListView1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListView1.SelectedIndexChanged
        With Me.ListView1
            Dim i As Integer
            For Each item As ListViewItem In ListView1.SelectedItems
                i = item.Index
            Next

            Dim innercounter As Integer = 0
            For Each subItem As ListViewItem.ListViewSubItem In ListView1.Items(i).SubItems
                Dim myString As String = ListView1.Items(i).SubItems(innercounter).Text
                Select Case innercounter
                    Case 2
                        txtqty.Text = 0.ToString()
                        txtqty.Text = CType(0, String)
                        txtqty.Text = CStr(0)
                        txtqty.Text = "0"
                        txtprice.Text = myString * txtqty.Text

                End Select
                innercounter += 1
            Next
        End With
    End Sub

End Class

Bryian Tan

Вы отлаживали и видели, что в "myString"?

Maciej Los

Подумай об этом! Умеете ли вы умножать текст: txtprice.Text = myString * txtqty.Text? Вы должны оперировать числами!

1 Ответов

Рейтинг:
1

Richard MacCutchan

Этот код не имеет никакого смысла:

Case 2
    txtqty.Text = 0.ToString()
    txtqty.Text = CType(0, String)
    txtqty.Text = CStr(0)
    txtqty.Text = "0"
    txtprice.Text = myString * txtqty.Text

У вас есть четыре попытки настройки txtqty к строке "0": почему? Затем вы пытаетесь умножить две строки вместе, хотя знаете, что одна из них равна нулю.

Вы должны преобразовать каждое значение в целое число, прежде чем изменять их, а затем установить текстовое поле, преобразовав результат в строку.