在WPF裡面預設是沒有資料庫相關的資料提供者的,那想要顯示資料庫的資料要怎麼辦?今天參考MSDN上的範例,利用原本ADO.Net的功能將資料填到DataSet裡面之後
在WPF裡面預設是沒有資料庫相關的資料提供者的,那想要顯示資料庫的資料要怎麼辦?今天參考MSDN上的範例,利用原本ADO.Net的功能將資料填到DataSet裡面之後,再利用資料繫結的方式將資料展現出來,下面來看看程式碼吧~
執行的畫面會像這樣
XAML Code
<Window x:Class="Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<StackPanel Name="spMain">
<StackPanel.Resources>
<DataTemplate x:Key="EmpItemTemplate">
<Grid ShowGridLines="True" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100" />
<ColumnDefinition Width="100" />
<ColumnDefinition Width="100" />
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Image Source="{Binding Path=pPicture}" Grid.Column="0" />
<TextBox Text="{Binding Path=pName}" Grid.Column="1"
FontWeight="Bold" />
<TextBlock Text="{Binding Path=pTEL}" Grid.Column="2" />
<TextBlock Grid.Column="3" Text="{Binding Path=pPicture}" />
</Grid>
</DataTemplate>
</StackPanel.Resources>
<ListBox Name="lstItem" Height="200"
ItemsSource="{Binding Path=myTable}"
ItemTemplate="{StaticResource EmpItemTemplate}"/>
</StackPanel>
</Window>
後置程式碼的部分
Imports System.Data
Class Window1
Dim CN As OleDb.OleDbConnection
Dim DA As OleDb.OleDbDataAdapter
Dim DS As DataSet
Private Function GetDataPath() As String
Return _
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
End Function
Public Function GetAppPath() As String
Return System.IO.Path.GetDirectoryName(Reflection.Assembly.GetExecutingAssembly.GetName.CodeBase.ToString.Substring(8))
End Function
Private Sub Window1_Initialized(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Initialized
CN = New OleDb.OleDbConnection( _
String.Format("Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}\test.mdb", GetAppPath))
DA = New OleDb.OleDbDataAdapter("Select * from Emp", CN)
DS = New DataSet
DA.Fill(DS, "myTable")
lstItem.DataContext = DS
End Sub
End Class
完整的專案可以在這邊下載