2017-05-22 2 views
0

を作成:VB.NETは、私はいくつかの値を返すべき機能を持っているデータベースから値を取得し、ドロップダウンメニュー

Public Function vratiTvrtke(ByVal hwid As String) 
    Dim hardware As String = hwid 
    Dim result = New List(Of String)() 
    Try 
     ManageConnection(False, konekcija) 'Open connection' 
     Dim strQuery As String = "SELECT tvrtke_naziv, dabase FROM info.tvrtke;" 
     Dim SqlCmd As New MySqlCommand(strQuery, dbCon) 
     Dim reader As MySqlDataReader = SqlCmd.ExecuteReader() 
     While reader.Read() 

     End While 
     reader.Close() 
     Return result 
    Catch ex As MySqlException 
     Console.WriteLine("Error: " & ex.ToString()) 
     Return Nothing 
    Finally 
     ManageConnection(True, konekcija) 'Close connection 
    End Try 
End Function 

データでは、私は、メニューを作る必要があり、上記の関数から返さ:

Public Function pripremiSucelje() 

    Dim barmanager1 As New BarManager 
    Dim barButtonItem = New BarButtonItem() 
    barButtonItem.Content = [tvrtke_naziv] 
    barButtonItem.Name = [dabase] 
    Tvrtka.Items.Add(barButtonItem) 
End Function 

物事は、第二の関数では、おそらく最初の関数は複数の行を返すので、私はおそらく "それぞれの"ループを実装する必要があります。

これはどのように達成できますか?

答えて

0
このクラスのリストにデータを追加するために、あなたの関数を変更し

Public Class ReturnList 
    Public Property tvrtke_naziv As string 
    Public Property dabase As string 
End class 

ここでリストに結果を取得する機能を:

Public Sub vratiTvrtke(ByVal hwid As String) 
    Dim hardware As String = hwid 
    Dim result = New List(Of ReturnList) 
    Try 
     ManageConnection(False, konekcija) 'Open connection' 
     Dim strQuery As String = "SELECT tvrtke_naziv, dabase FROM info.tvrtke;" 
     Dim SqlCmd As New MySqlCommand(strQuery, dbCon) 
     Dim reader As MySqlDataReader = SqlCmd.ExecuteReader() 
     While reader.Read() 
      Dim TempResult As New ReturnList 
      TempResult.tvrtke_naziv = reader(0) 
      TempResult.dabase = reader(1) 
      result.Add (TempResult) 
     End While 
     reader.Close() 
    Catch ex As MySqlException 
     Console.WriteLine("Error: " & ex.ToString()) 
    Finally 
     ManageConnection(True, konekcija) 'Close connection 
    End Try 
    pripremiSucelje(result) 
End Function 

は、ちょうどFor Eachループを追加します。

Public Function pripremiSucelje(ByVal MyList As List(Of ReturnList) 
    For Each item As ReturnList in MyList 
     Dim barmanager1 As New BarManager 
     Dim barButtonItem = New BarButtonItem() 
     barButtonItem.Content = item.tvrtke_naziv 
     barButtonItem.Name = item.dabase 
     Tvrtka.Items.Add(barButtonItem) 
    Next 
End Function 
+0

ありがとうございます! – RaceLt

+0

@RaceLtデータベースを使って作業することは、実用的であり、データを扱うのに適したクラスを作成するのがよい習慣であることを覚えておいてください。 – Mederic

関連する問題