标签:
做一个小实例,如下图,
1、设计数据库access:
2、在vs2013中创建wpf,把上数据库保存为db.mdb拷贝到项目下,并打开App.config文件添加数据库连接字符串
<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" /> </startup> <connectionStrings> <add name="conn" connectionString ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb;Persist Security Info=False" /> </connectionStrings> </configuration>
3、创建连接数据库的类
public class DbHelper { public static OleDbConnection getCon(){ string strcon = System.Configuration.ConfigurationManager.ConnectionStrings["conn"].ToString(); return new OleDbConnection(strcon); } }
4、创建Model类
public class Person { public string username { get; set; } public string pwd { get; set; } public int age { get; set; } public DateTime createdate { get; set; } public DateTime updatedate { get; set; } public string classroom { get; set; } public int id { get; set; } }
5、在mainwindow.cs类中添加数据和绑定数据
private Random rnd = new Random(); private ObservableCollection<Person> list { get; set; } public MainWindow() { InitializeComponent(); add();//添加数据 BindData();//绑定数据 cr.ItemsSource = new List<string> { "一班", "二班", "三班" }; } public void BindData() { using (var conn = DbHelper.getCon()) { list = new ObservableCollection<Person>(conn.Query<Person>("select * from users").ToList<Person>()); } this.DataContext = list; } public void add() { using (var db = DbHelper.getCon()) { for (int i = 0; i < 10; i++) { db.Execute("insert into users(username,pwd,age,createDate,classroom) values(@username,@pwd,@age,@createDate,@classroom)", new { username = "张三", pwd = "123", age = rnd.Next(20), createDate=DateTime.Now.ToString(), classroom = "一班" }); } } }
6、界面设计:
<Window x:Class="WpfApplication3.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="auto"/> <RowDefinition Height="*"/> <RowDefinition Height="auto"/> <RowDefinition Height="22"/> </Grid.RowDefinitions> <TextBlock Text="access数据基本读写操作"></TextBlock> <DataGrid Grid.Row="1" Name="dg" ItemsSource="{Binding}" CanUserAddRows="False" AutoGenerateColumns="False"> <DataGrid.Columns> <DataGridTextColumn Header="姓名" Binding="{Binding username}" Width="100"></DataGridTextColumn> <DataGridTextColumn Header="密码" Binding="{Binding pwd}"></DataGridTextColumn> <DataGridTextColumn Header="年龄" Binding="{Binding age}"></DataGridTextColumn> <DataGridTextColumn Header="添加时间" Binding="{Binding createdate}"></DataGridTextColumn> <DataGridTextColumn Header="更新时间" Binding="{Binding updatedate}"></DataGridTextColumn> <DataGridComboBoxColumn x:Name="cr" Header="班级" SelectedItemBinding="{Binding classroom}"></DataGridComboBoxColumn> </DataGrid.Columns> </DataGrid> <WrapPanel Grid.Row="2" DataContext="{Binding ElementName=dg,Path=SelectedItem}"> <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center"> <TextBlock Text="姓名:"/> <TextBlock MinWidth="100" Text="{Binding username}"/> </StackPanel> <StackPanel Orientation="Horizontal"> <TextBlock Text="密码:"/> <TextBlock MinWidth="100" Text="{Binding pwd}"/> </StackPanel> <StackPanel Orientation="Horizontal"> <TextBlock Text="年龄:"/> <TextBlock MinWidth="100" Text="{Binding age}"/> </StackPanel> <StackPanel Orientation="Horizontal"> <TextBlock Text="添加时间:"/> <TextBlock MinWidth="100" Text="{Binding createdate}"/> </StackPanel> <StackPanel Orientation="Horizontal"> <TextBlock Text="更新时间:"/> <TextBlock MinWidth="100" Text="{Binding updatedate}"/> </StackPanel> <StackPanel Orientation="Horizontal"> <TextBlock Text="班级:"/> <TextBlock MinWidth="100" Text="{Binding classroom}"/> </StackPanel> </WrapPanel> <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Grid.Row="3" > <Button Content="刷新" Height="22" VerticalAlignment="Top" Click="Button_Click" /> <Button Content="更新" Click="Button_Click_1"/> </StackPanel> </Grid> </Window>
7、对刷新 和更新按钮添加事件:
private void Button_Click(object sender, RoutedEventArgs e) { BindData(); } private void Button_Click_1(object sender, RoutedEventArgs e) { var p=dg.SelectedItem as Person; if (p == null) { MessageBox.Show("请选择要更新的行"); return; } using (var conn = DbHelper.getCon()) { conn.Execute("update users set username=@username,pwd=@pwd,age=@age,createdate=@c,updatedate=@u,classroom=@classroom where id=@id", new { username=p.username,pwd=p.pwd,age=p.age,c=p.createdate,u=p.updatedate,classroom=p.classroom ,id=p.id }); MessageBox.Show("ok"); } }
WPF以access为数据库,简单实现一个显示数据和更新数据的实例
标签:
原文地址:http://www.cnblogs.com/lunawzh/p/5936312.html