2017-12-18 3 views
0

Ich mache ein Studentenprofil in Visual Basic 2012 für eine Rechenaufgabe.Wie kann ich ein Listenfeld mit Daten aus einer MDB-Datenbank in Visual Basic 2012 füllen?

Ich habe eine Combo-Box mit zwei Kurse gefüllt: Computing und Business. (Auf der rechten Seite des Formulars, Bild beigefügt). Außerdem sollte eine List-Taste, die einmal gedrückt wurde, die Schüler aus einer .mdb Datenbank entsprechend dem in der Auswahlliste ausgewählten Kurs anzeigen.

Form

Wie fülle ich die Listbox mit den Schülern aus meiner Datenbank (die ich habe)?

und genauer unten zu sein, ist der Code, den ich habe bisher:

Public Class Form1 Dim co As New ADODB.Connection Dim rs As New ADODB.Recordset Dim bestätigen As Integer

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    co.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Documents\ProfileDB.mdb;Persist Security Info=False") 
    rs.Open("Select * from ProfileTBL", co, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockPessimistic) 
    Combo1.Items.Add("Computer Technology") 
    Combo1.Items.Add("Business Management") 
    display() 
End Sub 

Sub display() 
    TextBox1.Text = rs.Fields.Item("FirstName").Value 
    TextBox2.Text = rs.Fields.Item("Surname").Value 
    Combo1.Text = rs.Fields.Item("Course").Value 
    TextBox4.Text = rs.Fields.Item("Phone").Value 
End Sub 


Private Sub addnew_Click(sender As Object, e As EventArgs) Handles addnew.Click 
    rs.AddNew() 
    clear() 
End Sub 

Sub clear() 
    TextBox1.Text = "" 
    TextBox2.Text = "" 
    Combo1.Text = "Select Course" 
    TextBox4.Text = "" 
End Sub 

Private Sub Savebtn_Click(sender As Object, e As EventArgs) Handles Savebtn.Click 
    rs.Fields("FirstName").Value = TextBox1.Text 
    rs.Fields("Surname").Value = TextBox2.Text 
    rs.Fields("Course").Value = Combo1.Text 
    rs.Fields("Phone").Value = TextBox4.Text 
    MsgBox("Data is saved successfully.", vbInformation) 
    rs.Update() 
End Sub 

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    rs.MovePrevious() 
    If rs.BOF Then 
     rs.MoveLast() 
     display() 
    Else 
     display() 
    End If 
End Sub 


Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 
    rs.MoveNext() 
    If Not rs.EOF Then 
     display() 
    Else 
     rs.MoveFirst() 
     display() 
    End If 
End Sub 

Private Sub deletebtn_Click(sender As Object, e As EventArgs) Handles deletebtn.Click 
    confirm = MsgBox("Do you want to delete the Student Profile", vbYesNo + vbCritical, "Deletion Confirmation") 
    If confirm = vbYes Then 
     rs.Delete() 
     MsgBox("Record has been Deleted successfully", vbInformation, "Message") 
     rs.Update() 
     Refresh() 
     clear() 

    Else 
     MsgBox("Profile Not Deleted!", vbInformation, "Message") 
    End If 
End Sub 



Private Sub findbtn_Click(sender As Object, e As EventArgs) Handles findbtn.Click 
    rs.Close() 
    rs.Open("Select * from ProfileTBL where Phone='" + TextBox4.Text + "'", co, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockPessimistic) 
    If Not rs.EOF Then 
     display() 
     reload() 
    Else 
     MsgBox("Record Profile not found!", vbInformation) 
    End If 

End Sub 

Sub reload() 
    rs.Close() 
    rs.Open("Select * from ProfileTBL", co, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockPessimistic) 
End Sub 


Private Sub listbtn_Click(sender As Object, e As EventArgs) Handles listbtn.Click 


End Sub 

End Class

+0

Vielen Dank! Aber meine Datenbank ist .mdb Private Sub Form1_Load (Absender als Objekt, e als EventArgs) behandelt MyBase.Load co.Open ("Provider = Microsoft.Jet.OLEDB.4.0; Datenquelle = c: \ Documents \ ProfileDB.mdb Persist Security Info = false ") rs.Open (" select * from ProfileTBL“, co, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockPessimistic) Combo1.Items.Add ("Computer Technology") Combo1; .Items.Add ("Business Management") display() End Sub – ciprian

+0

fügen Sie bitte alle Informationen zu Ihrer Frage hinzu. Bearbeite es. Veröffentlichen Sie sie nicht in Kommentaren. Vor allem, wenn Sie Code verwenden - keine Code-Blöcke in Kommentaren - nur inline. –

Antwort

0

wie unten sein könnte:

Private Sub btnListStudents_Click(sender As Object, e As EventArgs) Handles btnListStudents.Click 
    Dim dt As New DataTable() 
    dt.Columns.AddRange(New DataColumn() {New DataColumn("StudentId", GetType(Integer)), 
              New DataColumn("StudentName", GetType(String)), 
              New DataColumn("StudentCourse", GetType(Integer))}) 
    dt.Rows.Add(1, "John Hammond", 555) 
    dt.Rows.Add(2, "Mudassar Khan", 666) 
    dt.Rows.Add(3, "Suzanne Mathews", 777) 
    dt.Rows.Add(4, "Robert Schidner", 888) 
    dt.Rows.Add(5, "John Doo", 999) 

    'Clear first 
    lstStudents.Items.Clear() 

    'Fill names into the listbox 
    For Each row As DataRow In dt.Rows 
     lstStudents.Items.Add(row("StudentName")) 
    Next row 
End Sub 
Verwandte Themen