DataGridView 上增删改同步Access数据库

准备工作:

用Visual Studio新建一个WinForm项目,在Form1中放上一个datagridview控件,两个按钮控件.

在项目所在文件夹目录bin/debug/ 下新建一个Access数据库,名字Database. 这里要注意,数据库后缀名最好是.mdb (access 2002-2003数据库). 如果用.accdb(access2007)格式,就需要下载并安装Access 2007 runtime, 因为07版使用的Provider Engine与原来不同,而且Office2007中没有自带这个.在Database中新建一张表,名字tblMat,加入主键字段"ID",类型自动递增,其他字段随意.

编写代码:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Linq;
 7 using System.Text;
 8 using System.Threading.Tasks;
 9 using System.Windows.Forms;
10 using System.Data.OleDb;
11
12 namespace DataGridViewTest
13 {
14     public partial class Form1 : Form
15     {
16         //连接字符串,用来连接Database数据库;
17         //如果没有密码请去掉JET OLEDB:Database Password=***;
18         public static string connString = @"
19                 Provider=Microsoft.Jet.OLEDB.4.0;
20                 Data Source=Database.mdb;
21                 JET OLEDB:Database Password=***;
22         ";
23         //SQL查询语句,用来从Database数据库tblMat表中获取所有数据;
24         private string sqlString = "SELECT * from tblMat";
25         //dataadapter,使数据库的表和内存中的表datatable通讯
26         private OleDbDataAdapter da;
27         //bindingsource,使内存中的表datatable与窗体的显示控件datagridview通讯
28         private BindingSource bs;
29         public Form1()
30         {
31             InitializeComponent();
32             //新建连接
33             OleDbConnection conn = new OleDbConnection(connString);
34             //新建dataadapter
35             da = new OleDbDataAdapter(sqlString, conn);
36             //新建datatable
37             DataTable dt = new DataTable();
38             //如果数据适配器填充内存表时,没有设置主键列,而access数据表有,那么设置主键;
39             //如果access数据表的主键是自动递增,那么设置内存表的主键也是自动递增.
40             da.MissingSchemaAction = MissingSchemaAction.AddWithKey;
41             //填充内存表
42             da.Fill(dt);
43             //如果设置了MissingSchemaAction,下面语句可以省略;
44             //dt.PrimaryKey = new DataColumn[] { dt.Columns[0] };
45             //dt.Columns[0].AutoIncrement = true;
46             //dt.Columns[0].AutoIncrementSeed = 1;
47             //dt.Columns[0].AutoIncrementStep = 1;
48
49             //新建bindingsource
50             bs = new BindingSource();
51             //bindingsource绑定内存表
52             bs.DataSource = dt;
53             //datagridview绑定bindingsource
54             dataGridView1.DataSource = bs;
55         }
56
57         //更新数据库,包括增删改,如果需要实时更新,并且希望客户端和数据库通讯不要太频繁,
58         //把下面代码内容设置在datagridview的RowLeave事件中
59         private void button1_Click(object sender, EventArgs e)
60         {
61             //通过数据适配器的select command text语句自动生成其他SQL语句
62             //包括 Update, Insert, Delete
63             OleDbCommandBuilder cb = new OleDbCommandBuilder(da);
64             //以下语句经测试不需要
65             //da.UpdateCommand = cb.GetUpdateCommand();
66             //da.InsertCommand = cb.GetInsertCommand();
67             //da.DeleteCommand = cb.GetDeleteCommand();
68             //dataGridView1.EndEdit();
69             //conn.open();
70
71             //用dataadapter的update方法自动更新access数据库
72             da.Update((DataTable)bs.DataSource);
73             //conn.close();
74         }
75
76         //定位到datagridview的新增行第二个单元格,
77         //第一个单元格式"ID",自动递增.
78         private void button2_Click(object sender, EventArgs e)
79         {
80             dataGridView1.CurrentCell = dataGridView1.Rows[dataGridView1.NewRowIndex].Cells[1];
81         }
82     }
83 }
时间: 2024-10-07 04:12:31

DataGridView 上增删改同步Access数据库的相关文章

使用DataGridView进行增删改查,并同步到数据库

DataGridView控件具有极高的可配置性和可扩展性.它提供有大量的属性.方法和事件,能够用来对该控件的外观和行为进行自己定义.以下通过一个小样例来展示DataGridView进行增删改查,并同步到数据库的功能. 窗口展示: 用户需求: 1.当窗口显示时,将数据库中用户表中的数据显示出来. 2.选中一行,运行删除操作,同一时候在数据库中对应数据被删除. 3.双击某个数据,进行编辑,或者在空白行加入新的数据,然后点击更新,数据库随之更新. 代码展示: Public Class Form1'代码

Asp.net Core 2.1使用 EF Core 简单增删改查操作数据库

Asp.net Core 2.1使用 EF Core 简单增删改查操作数据库 大概步骤如下5步: 1.创建项目(Asp.net Core 2.1项目) 2.项目使用EF Core 3.建立实体 4.生成迁移文件(生成数据库) 5.使用VS工具生成视图.控制器代码 示例代码下载  https://github.com/ZhMartincheng/NetCoreDemo.git 1.创建项目(Asp.net Core 2.1项目) 选择.net core 版本2.1 基础项目创建成功 2.项目使用E

利用LINQ to SQL 增删改查本地数据库

C#新人,博客园第一篇博文,希望大家多多指教. 最近趁项目空隙,学习了LINQ,其强大高效易读的数据操作方式令人印象深刻.特别是LINQ to SQL,让用户可以像操作内存对象一样操作SQL数据库.在阅读了<深入理解c#>和参考以下四篇博文后,自己摸索,完成了创建本地SQL数据库和数据表,VS连接数据库,到利用LINQ to SQL增删改查数据库表中信息. SQL服务器安装:http://www.downcc.com/tech/4135.html SQL数据库和数据表格创建:http://bl

Winform开发之DataGridView的增删改

DataGridView是一个非常强大的控件,用法很多.这里介绍一个简单的增删改例子. 贴效果图 右侧输入学生信息点击新增,将数据增加到数据库,并且加载到datagridview中,点击选择某条数据修改,将选择的数据加载到右侧的编辑框内,修改后点击修改即可,也可直接删除. 贴代码 public partial class Form1 : Form { private static string strConn = "Data Source=210.26.111.80;Initial Catalo

完整增删改查,数据库字符串攻击

复习一下,基础的增删改查, 增一条信息,删一条信息.改一条信息 询问语句 Console.WriteLine("请输入你的学号"); string xuehao = Console.ReadLine(); Console.WriteLine("请输入你的姓名"); string name = Console.ReadLine(); Console.WriteLine("请输入你的班级"); string banji= Console.ReadLi

在Windows2008上部署网站-以ACCESS 数据库的网站

最近单位弄了几台新服务器. 配上了Windows2008 R2 64 位. (以前在虚拟机上玩过08,但是发现真机和虚拟机还是相差很大的) 小弟负责把原来的网站从03的系统上迁移到08 上 所以打算写一个系列的日志.记录下这个不大不小的 项目 单位网站是.NET 和ASP 的,数据库大致分为SQL 和ACCESS 因为SQL 在独立服务器上.所以问题不大 下面写下在迁移ACCESS 数据库的网站中碰到的问题: 1:未在本地计算机上注册"Microsoft.Jet.OLEDB.4.0" 

基础的增删改查,数据库优化,索引

mysql的特点 关系型数据库,免费使用, 插入式存储引擎, 性能高, 基础的增删改查 ddl语句,数据定义语句 123456789101112 create database test1;drop database test1;use test1;create table emp(ename varchar(10),hiredate date,sal decimal(10,2),deptno int(2));drop table emp;alter table emp modify ename

对datagridview进行增删改(B)

1 create DATABASE stu 2 ON 3 ( 4 name='stu.mdf', 5 filename='F:\胡浴东\数据库\stu数据库\stu.mdf', 6 size=5, 7 filegrowth=10 8 ) 9 log ON 10 ( 11 name='stu_log.ldf', 12 filename='F:\胡浴东\数据库\stu数据库\stu_log.ldf', 13 size=5, 14 filegrowth=10 15 ) 16 go 17 18 USE

数据库的查询——增删改查以及数据库的事务

1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 android:layout_width="match_parent