Łą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.
'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
