C# 操作 access 数据库
随笔:
(1) 命名空间
using System.Data.OleDb;
(2) 连接字符串
private staticstring connStr = @"Provider= Microsoft.Ace.OLEDB.12.0;Data Source = d:\login.accdb";
注意:
a、DataSource = 数据库存放的路径(这里数据库放到了D盘目录下)
b、 2003版本的Access数据库链接字符串: privatestatic stringconnStr =@"Provider = Microsoft.Jet.OLEDB.4.0;DataSource = d:\login.mdb";
2007版本的Access数据库链接字符串:privatestaticstring connStr =@"Provider= Microsoft.Ace.OLEDB.12.0;Data Source = d:\login.accdb";
(3) 建立连接:
OleDbConnection tempconn =new OleDbConnection(connStr);
(4) 使用OleDbCommand类来执行Sql语句:
OleDbCommand cmd = new OleDbCommand(sql, tempconn);
tempconn.Open();
cmd.ExecuteNonQuery();
栗子(工具类):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OleDb;
using System.Windows.Forms;
using System.Data;
namespace test
{
class AccessHelper
{
private static string connStr = @"Provider = Microsoft.Ace.OLEDB.12.0;Data Source = d:\login.accdb";
public static OleDbConnection GetConn()
{
OleDbConnection tempconn = new OleDbConnection(connStr);
MessageBox.Show(tempconn.DataSource);
tempconn.Open();
MessageBox.Show(tempconn.State.ToString());
return (tempconn);
}
/// <summary>
/// 执行增加、删除、修改指令
/// </summary>
/// <param name="sql">增加、删除、修改的sql语句</param>
/// <param name="param">sql语句的参数</param>
/// <returns></returns>
public static int ExecuteNonQuery(string sql, params OleDbParameter[] param)
{
using (OleDbConnection conn = new OleDbConnection(connStr))
{
using (OleDbCommand cmd = new OleDbCommand(sql,conn))
{
if (param != null)
{
cmd.Parameters.AddRange(param);
}
conn.Open();
return(cmd.ExecuteNonQuery());
}
}
}
/// <summary>
/// 执行查询指令,获取返回的首行首列的值
/// </summary>
/// <param name="sql">查询sql语句</param>
/// <param name="param">sql语句的参数</param>
/// <returns></returns>
public static object ExecuteScalar(string sql, params OleDbParameter[] param)
{
using (OleDbConnection conn = new OleDbConnection(connStr))
{
using (OleDbCommand cmd = new OleDbCommand(sql, conn))
{
if (param != null)
{
cmd.Parameters.AddRange(param);
}
conn.Open();
return (cmd.ExecuteScalar());
}
}
}
/// <summary>
/// 执行查询指令,获取返回的datareader
/// </summary>
/// <param name="sql">查询sql语句</param>
/// <param name="param">sql语句的参数</param>
/// <returns></returns>
public static OleDbDataReader ExecuteReader(string sql, params OleDbParameter[] param)
{
OleDbConnection conn = new OleDbConnection(connStr);
OleDbCommand cmd = conn.CreateCommand();
cmd.CommandText = sql;
cmd.CommandType = CommandType.Text;
if (param != null)
{
cmd.Parameters.AddRange(param);
}
conn.Open();
return (cmd.ExecuteReader(CommandBehavior.CloseConnection));
}
/// <summary>
/// 执行查询指令,获取返回datatable
/// </summary>
/// <param name="sql">查询sql语句</param>
/// <param name="param">sql语句的参数</param>
/// <returns></returns>
public static DataTable ExecuteDatable(string sql, params OleDbParameter[] param)
{
using (OleDbConnection conn = new OleDbConnection(connStr))
{
using (OleDbCommand cmd = new OleDbCommand(sql, conn))
{
if (param != null)
{
cmd.Parameters.AddRange(param);
}
DataTable dt = new DataTable();
OleDbDataAdapter sda = new OleDbDataAdapter(cmd);
sda.Fill(dt);
return (dt);
}
}
}
}
}
C# 操作 access 数据库的更多相关文章
- MFC通过ADO操作Access数据库
我在<VC知识库在线杂志>第十四期和第十五期上曾发表了两篇文章——“直接通过ODBC读.写Excel表格文件”和“直接通过DAO读.写Access文件”,先后给大家介绍了ODBC和DAO两 ...
- Python操作Access数据库
我们在这篇文章中公分了五个步骤详细分析了Python操作Access数据库的相关方法,希望可以给又需要的朋友们带来一些帮助. AD: Python编 程语言的出现,带给开发人员非常大的好处.我们可以利 ...
- 关于操作Access数据库jdk选择问题
关于操作Access数据库,使用jdk64位无法通过ODBC无法获取数据,只能通过jdk32位进行开发.
- 基于指纹考勤机的真实的PHP操作Access数据库成功案例(最终实现) 2011-11-2v
听了我的建议,我们单位的食堂准备使用一台指纹考勤机统计吃饭人次,这样院里好给食堂的承包人以相应饭补.以前买过一台彩屏指纹机,数据库是access的,今儿又买了一台准备放到食堂里,而且考虑到停电,还特地 ...
- 直接通过ADO操作Access数据库
我在<VC知识库在线杂志>第十四期和第十五期上曾发表了两篇文章——“直接通过ODBC读.写Excel表格文件”和“直接通过DAO读.写Access文件”,先后给大家介绍了ODBC和DAO两 ...
- JavaScript操作数据库JS操作Access数据库
avaScript操作数据库JS操作Access数据库,跟其他语言操作差不多,总结了一下习惯代码,仅供参考学习.现在在F盘有文件abc.mdf,表名为Student,一共2个字段,Id数字类型主键,s ...
- System.Data.OleDb操作access数据库类,【bubuko.com】
access数据库在应用了System.Data.OleDb后操作会很方便,这是一个常用的数据库操作类,其中两个方法,一个是返回datatable的,一个是执行sql语句返回影响记录的(一般是inse ...
- C#操作Access数据库(创建&修改结构)
本文转自:http://www.cnblogs.com/liyugang/archive/2012/11/17/2775393.html 想要在程序中控制Access,不是数据,而是Access数据库 ...
- 操作ACCESS数据库注意事项
以下问题都是容易忽略,但却不容易找出问题的所在,让我头疼不少,故在此列出,即是一个总结,同样也给其他人参与! 1.使用参数形式执行SQL命令时,参数数组需与在SQL语句中参数名出现的位置及名称必须完全 ...
- C#操作Access数据库中遇到的问题(待续)
(1)在向Access中插入数据时,显示语法错误,后来将生成的sql语句单独拿到Access数据库中运行,能正确插入数据,从网上寻找资料,有人的sql语句正常,但是该语句在Access中运行错误,错误 ...
随机推荐
- TensorFlow在win10上的安装与使用(三)
本篇博客介绍最经典的手写数字识别Mnist在tf上的应用. Mnist有两种模型,一种是将其数据集看作是没有关系的像素值点,用softmax回归来做.另一种就是利用卷积神经网络,考虑局部图片像素的相关 ...
- 产品排序 product
评测传送门 [问题描述] 你是一个公司的员工,你会按时间顺序受到一些产品的订单,你需要用一个栈来改变这些订单的顺序(每个产品都必须入栈和出栈一次). 按初始顺序,每次可以将一个产品入栈,或将栈顶产品弹 ...
- Linux基础-swap交换分区
任务:对一块15G大小的硬盘进行分区,主分区为5G,扩展分区10G,一个逻辑分区5G作为swap交换分区,并激活查看新的swap分区 第一步,建立的新的SCSI硬盘,开启Linux系统前添加一块大小为 ...
- 【总结】前端框架:react还是vue?
之前写了一篇前端框架的大汇总,主要介绍了当下主流的框架和其特性.最近除了bootstrap,就属react和vue最为热门,这篇就主要拿这两个框架来做一下详细对比. 究竟如何正确使用?作为小白的我们从 ...
- Remove K Digits
Given string A representative a positive integer which has N digits, remove any k digits of the numb ...
- Laravel 5.5 迁移报错:General error: 1215 Cannot add foreign key constraint
问题 之前一直用的 Laravel 5.4,数据库也是直接写 sql 的,感觉可定制性更强,顺便锻炼下 sql.这次改用了 Laravel 5.5,索性用迁移建库试试,结果报错如下: SQLSTATE ...
- asp.net操作word 配置在IIS上出现的问题
异常: 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 80070005 拒绝访问. (异常来自 ...
- 【hdu6334】【2018Multi-University-Training Contest04】Problem C. Problems on a Tree
维护1边的联通块和2边的联通块,合并的时候直接启发式合并. cdqz的大爷好强啊. #include<bits/stdc++.h> #define lson (o<<1) #d ...
- Python-Web框架的本质
Web框架的本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. Python中使用socket和 ...
- 分别使用docx4j,jacob将文字与图片插入word中书签位置
项目中需要将一段文字,与人员的签名(图片)插入到上传的word中,上网查询了一下,有许多种方式可以向word中插入文字,发现docx4j与jacob都为比较常见的解决方案,于是就先使用的docx4j进 ...