Wypełnianie pola kombo danymi z bazy.

Łączenie się z bazą danych to jedna z podstawoych operacji, które się wykonuje tworząc oprogramowanie. Przedstawiam przykład jak w prosty sposób połączyć się z bazą danych.

Bez pomocy kreatora można w prosty sposób utworzyć źródło danych oraz podłączyć je do odpowiedniej kontrolki. Podłużę się w tym celu przykładową bazą danych instalowaną razem z serwerem bazy danych SQL Server Compact 3.5.

Komentarze w kodzie opisują resztę. Dla zainteresowanych plik projektu w załączeniu.

Plik z projektem

'import modułu do obsługi serwera SQL Compact
Imports System.Data.SqlServerCe

Public Class formProductBrowser

    'Połączenie z bazą danych.
    Private conn As SqlCeConnection
    'Zmienne przechowująceo "connection string".
    Private database_path, con_string As String
    'Data set - przechowuje dane w pamięcid.
    Private ds As New DataSet
    ' Przygotowanie komend do wykonania na bazie        '
    Private cmd_select, cmd_update As SqlCeCommand
    'Tabela z danymi pobranymi z bazy danych.
    Private my_table As New System.Data.DataTable()
    ' Adapter - reprezentuje zestaw komend na danych i połączenie z bazą 
    ' używane do wypełniania DataSet
    Private my_adapter As New SqlCeDataAdapter()

    'Identyfikator i cena produktu
    Private product_id As Integer
    Private unit_price As Decimal

    'Nazwa tabeli i pól
    Private nazwa_tabeli As String
    'Nazwa pola ID
    Private nazwa_id As String
    'Nazwa pola do modyfikacji
    Private nazwa_do_mod As String
    'Nazwa pola do modyfikacji
    Private nazwa_sort As String

    Private Sub formEmployeesBrowser_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        nazwa_tabeli = "Products"
        nazwa_do_mod = "Unit Price"
        nazwa_id = "Product ID"
        nazwa_sort = "Product Name"

        ' Otwarcie połączenia.
        database_path = "C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Samples\Northwind.sdf;"
        con_string = "Data Source = " & database_path & ";Persist Security Info=False;"
        conn = New SqlCeConnection(con_string)
        conn.Open()

        ' Utworzenie komend do operacyj na zbiorze danych.
        cmd_select = conn.CreateCommand()
        cmd_select.CommandText = "SELECT * FROM " & nazwa_tabeli '& _
        '" ORDER BY '" & nazwa_sort & "';"

        my_adapter.SelectCommand = cmd_select
        my_adapter.UpdateCommand = cmd_update

        'Wypełnianie DataSet danymi z bazy 
        my_adapter.Fill(ds, nazwa_tabeli)

        my_table = ds.Tables(nazwa_tabeli)
        'Wypełnienie pola kombo z produktami
        cmbProduct.DataSource = my_table
        cmbProduct.DisplayMember = "Product Name"
        cmbProduct.ValueMember = nazwa_id

    End Sub

    Private Sub cmbProduct_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbProduct.SelectedIndexChanged
        lblProdId.Text = cmbProduct.SelectedItem(0)
        lblQtyPerUnit.Text = cmbProduct.SelectedItem(5)
        txtUnitPrice.Text = cmbProduct.SelectedItem(6)
        lblProdName.Text = cmbProduct.SelectedItem(3)
    End Sub


    Private Sub formEmployeesBrowser_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        If conn.State = ConnectionState.Open Then
            conn.Close()
        End If
    End Sub

    Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click
        Me.Close()
    End Sub
End Class
Autor: grzeszy - 28, Sierpień 2009
Kategoria: Programowanie, Visual Basic .NET

Skomentuj

Ostatnie wpisy