2017-10-08 46 views
-1

See pic 刚接触vb.net。无论如何,我不知道如何在数据库中选择产品和价格的价值,因为它在列表视图中。我试过 Dim txtValue as String txtValue = ListView1.FocusedItem.SubItems(0).text。获取列的值。 在我提供的图片中,如果我放置客户名称,并且我在listview1中选择她的订单,它将保存在我的数据库中。它会显示我的listview2。只是无视地址。
更新我认为这段代码有效,但仍然显示错误消息。 Error message see pic如何将我在ListView中选择的项目放到我的数据库中?

Imports System.Data.SqlClient 
Imports System.IO 

Public Class Form1 
    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 Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
     con.Open() 
     con.Close() 
     list() 

     list2() 
    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 btnsave_Click(sender As Object, e As EventArgs) Handles btnsave.Click 

     modifyrecord("Insert into ProductOrder([name],[product],[price]) values ('" & txtname.Text & "','" & ListView1.SelectedItems(0).SubItems(1).Text & "'," & ListView1.SelectedItems(0).SubItems(2).Text & "") 



    End Sub 
    Private Sub listView1_MouseClick_1(ByVal sender As Object, ByVal e As MouseEventArgs) 

    End Sub 

    Sub list2() 
     con.Open() 


     cmd2 = New SqlCommand("SELECT * FROM ProductOrder", con) 
     rdr = cmd2.ExecuteReader 
     ListView2.Items.Clear() 
     If rdr.HasRows Then 
      Do While rdr.Read() 
       Dim arr As String() = New String(3) {} 
       Dim itm As ListViewItem 

       arr(0) = rdr("id") 
       arr(1) = rdr("name") 
       arr(2) = rdr("product") 
       arr(3) = rdr("price") 

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


      Loop 

     End If 

     con.Close() 
    End Sub 
    Sub modifyrecord(ByVal sql) 

     If txtname.Text = "" Or ListView1.SelectedItems(0).SubItems(1).Text = "" Or IsNumeric(ListView1.SelectedItems(0).SubItems(2).Text) = False Then 


     Else 
      con.Open() 
      cmd = New SqlCommand(sql, con) 
      cmd.ExecuteNonQuery() 
      con.Close() 
      list() 

     End If 

    End Sub 
End Class 
+0

这将是一个DataGridView多了,因为这就是他们所做的。没有太多的插入帮助。请阅读[问]并参加[游览] – Plutonix

+0

首先,你知道如何将数据插入数据库吗? – jmcilhinney

+0

是的。我只是不知道如何用listview来做到这一点。 – view

回答

0

试试这个

txtValue = ListView1.SelectedItems(0).SubItems(1).Text 
txtValue1 = ListView1.SelectedItems(0).SubItems(2).Text 

要从列表视图 获得产品和价格,我认为你有多重选择设置为false。

+0

我认为它的工作原理,但有一个错误消息。看到上面的图片。 – view

+0

什么是错误?我看了一下图片,但没有说明错误是什么。如果价格的数据类型是字符串,我会感到惊讶。你能证实吗? – Mary

+0

价格的数据类型是int,我不知道它为什么说“靠近'100'的语法不正确。” – view

相关问题