C# Access数据库增删查改的简单方法
发布时间:2024-01-22 08:41:07
引用集:
using System.Data.OleDb;
static string exePath = System.Environment.CurrentDirectory;//本程序所在路径
//创建连接对象
OleDbConnection conn = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;data source=" + exePath + @"\文件名.mdb");
1.和查询有关的,如获取表数据(包括所谓的“刷新”和“连接数据库”)、按条件查询,都是用的 OleDbDataAdapter
private void 获取数据表/查询()
{
conn.Open();
//获取数据表
//string sql = "select * from 表名 order by 字段1";
//查询
string sql = "select * from 表名 where 字段2="...;
OleDbDataAdapter da = new OleDbDataAdapter(sql, conn); //创建适配对象
DataTable dt = new DataTable(); //新建表对象
da.Fill(dt); //用适配对象填充表对象
dataGridView1.DataSource = dt; //将表对象作为DataGridView的数据源
conn.Close();
}
其中“获取数据表”属于频繁被嵌套调用的方法,所以应去掉头尾的conn.Open和Close,以免和其他方法中的Open发生累加从而报错。
2.凡涉及修改表数据的,如增、删、保存修改,都是用 OleDbCommand
private void 增/删/改()
{
conn.Open();
//增
string sql = "insert into 表名(字段1,字段2,字段3,字段4)values(...)";
//删
//string sql = "delete from 表名 where 字段1="...;
//改
//string sql = "update student set 学号=" ...;
OleDbCommand comm = new OleDbCommand(sql, conn);
comm.ExecuteNonQuery();
conn.Close();
}
其中ExecuteNonQuery被成功更改的元组数量,所以comm.ExecuteNonQuery()也可以改造为判断,提示用户成功或失败。
int i = comm.ExecuteNonQuery();
if (i > 0)
{
MessageBox.Show("添加数据成功!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
MessageBox.Show("添加失败!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
3.对DataGridView中数据更改的保存
private void saveData2()
{
dataGridView1.EndEdit();
string sql = "select * from 表名";
OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);
OleDbCommandBuilder bld = new OleDbCommandBuilder(da);
da.UpdateCommand = bld.GetUpdateCommand();
//把DataGridView赋值给dataTbale。(DataTable)的意思是类型转换,前提是后面紧跟着的东西要能转换成dataTable类型
DataTable dt = (DataTable)dataGridView1.DataSource;
da.Update(dt);
dt.AcceptChanges();
conn.Close();
}
猜你喜欢
- 如下所示:import tensorflow as tfsess = tf.Session(config=tf.ConfigProto(lo
- 本文实例讲述了JS+HTML5实现上传图片预览效果。分享给大家供大家参考,具体如下:在项目中遇到用input标签file类型的文件上传,想实
- 本文实例讲述了Python基础学习之基本数据结构。分享给大家供大家参考,具体如下:前言相比于PHP,Python同样也是脚本解析语言,所以在
- privot多对多关系的中间表。PT5框架会自动把privot带上。我们需要隐藏,因为我们不需要privot,而且pritvot也不在我们模
- model.pyimport datetimefrom django.contrib.auth.models import Userfrom
- 1. 背景最近在爬取某个站点时,发现在POST数据时,使用的数据格式是request payload,有别于之前常见的 POST数据格式(F
- 1.迭代器当您创建一个列表时,你可以逐个读取它的项。逐项读取其项称为迭代:mylist是一个可迭代的对象。当你使用列表解析式时,你创建了一个
- replace(param1,param2,param3)param1 正则表达式;param2 将匹配的字符替换成指定字符;param3
- 引言借由本篇文章来探讨下在Mysql数据库中数值类型tinyint(1)和tinyint(4) 有啥区别呢?什么是tinyint(
- JavaScript 中的 this 指向问题有很多文章在解释,仍然有很多人问。上周我们的开发团队连续两个人遇到相关问题,所以我不得不将关于
- 一、Ajax 跨域请求Ajax 请求一个目标地址为非本域(协议、主机、端口任意一个不同)的 web 资源。前端http://192.168.
- 本文实例为大家分享了python模拟事件触发机制的具体代码,供大家参考,具体内容如下EventManager.py# -*- encodin
- 分组查询 group bygroup by 属性名 [having 条件表达式][ with rollup]“属性名 ”指按照该字段值进行分
- 代码如下:--新增表字段 ALTER procedure [dbo].[sp_Web_TableFiled_Insert] (
- 本文为大家分享了SQL Server 2008R2简单使用教程,供大家参考,具体内容如下1 首先找到开始菜单中相关内容;如下图;安装的组件不
- 记得有一期ucdchina书友会里面,聊过一次大家的工作习惯问题,现在回想起来很有意思,特整理这篇文章分享给大家。关于photoshop1
- vscode是一款非常轻量级的编辑器,你可以通过安装甚至自己编写一些小的插件来满足各种不同的使用需求,使用起来非常简介方便。方式一:图形安装
- 首先是安装好PHP之后配置环境变量然后在cmd中输入php -v 能看到版本号即为配置好了之后在sublime中新建编译系统,输入代码{&q
- 问题分析在关闭数据库的命令发现mysql关不了,提示Warning: World-writable config file '/et
- 具体方法:(推荐教程:mysql数据库学习教程)查看表被锁状态# 查询哪些表锁了show OPEN TABLE