2017-10-08 2 views
-1

See pic vb.net에 새 정보가 있습니다. 어쨌든 목록 뷰에 있기 때문에 필자가 데이터베이스에서 선택한 제품 및 가격의 가치를 어떻게 써야할지 모르겠다. 시도했다 문자열로 희미 txtValue txtValue = ListView1.FocusedItem.SubItems (0). 텍스트. 열의 값을 가져옵니다. 내가 제공 한 그림에서 customame을 입력하고 listview1에서 그녀의 주문을 선택하면 데이터베이스에 저장됩니다. 그리고 그것은 나의 listview2를 보여줄 것입니다. 그냥 주소를 무시하십시오.
업데이트이 코드는 작동하지만 여전히 오류 메시지가 표시됩니다.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를 사용하면 훨씬 쉽게 할 수 있습니다. 도움이 될만한 자료가 많이 없습니다. [ask]를 읽고 [둘러보기]를 가져 가십시오 – Plutonix

+0

우선, 데이터를 데이터베이스에 삽입하는 방법을 알고 있습니까? – jmcilhinney

+0

예. 나는 listview로 어떻게하는지 모른다. – view

답변

0

Error message see pic 난 당신이 다중 선택이 false로 설정되어 있다고 가정 목록보기 에서 제품과 가격을 얻으려면이

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

을보십시오.

+0

나는 그것이 효과가 있다고 생각하지만 오류 메시지가 있습니다. 위 그림을 참조하십시오. – view

+0

무엇이 오류입니까? 나는 그 그림을 보았지만 그 잘못이 무엇인지 말하지 않았다. 가격의 데이터 유형이 문자열 인 경우 놀랍습니다. 그것을 확인할 수 있습니까? – Mary

+0

가격의 데이터 유형이 int인데 왜 '100'근처에 잘못된 구문이 표시되는지 알 수 없습니다. " – view

관련 문제