码迷,mamicode.com
首页 > 数据库 > 详细

WPF以access为数据库,简单实现一个显示数据和更新数据的实例

时间:2016-10-07 18:18:52      阅读:490      评论:0      收藏:0      [点我收藏+]

标签:

做一个小实例,如下图,

技术分享

 

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!