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中运行错误,错误 ...
随机推荐
- Linux学习-1进程
在Linux中,在一个程序的内部启动另外一个程序,从而创建一个新进程. 1.这个工作可以通过库函数system来完成. #include<stdlib.h> int system (con ...
- AAC编码
1. 前言 如果说目前H.264是视频CODEC的实际霸主,那么AAC就是音频CODEC的女王.主流的音视频格式都是H.264搭配AAC,无论是非实时的媒体文件还是实时的媒体流. 2. AAC历史 A ...
- webSQL 增删改查
webSQL 增删改查 转载于:https://www.cnblogs.com/liuhao-web/p/7866032.html /** *数据库操作辅助类,定义对象.数据操作方法都在这里定义 * ...
- UNIX环境高级编程 第7章 进程环境
本章涉及C/C++程序中main函数是如何被调用的.命令行参数如何传递给main函数.程序的内存空间布局.程序如何使用环境变量.程序如何终止退出. main函数 C程序或C++程序总是从main函数开 ...
- Java中关于变量的几种情况
Java中关于变量的几种情况 1.继承时变量的引用关系 class Animals { int age = 10; void enjoy() { System.out.println("An ...
- 一个脚本和一个容易疏忽的问题strcmp、strncmp、memcmp的用法【原创】
一个容易疏忽的问题: strcmp.strncmp.memcmp, 对于memcmp进行字符串比较时可能会出现内存重叠的情况 status = strncmp(xdev->product, &q ...
- Django的ContentType框架django_conent_type
Django包含了一个conenttype应用程序,记录了Django项目中安装的所有模型,为当前项目所有基于Django驱动的model提供了更高层次的抽象接口. 一.概述 ContentTypes ...
- 使用postman做接口测试(二)
参考大神总结:https://www.cnblogs.com/Skyyj/p/6856728.html 二,下边的东西工作中实际要用到了 1, postman安装 chrome浏览器打开chrome: ...
- /touch滑屏事件
//touch滑屏事件 var windowHeight = $(window).height(), $body = $("body"); $body.cs ...
- 用js面向对象思想封装插件
js是基于原型的面向对象语言,如果你学过java,c#等正统面向对象语言,你会难以理解js的面向对象,他和普通的面向对象不太一样,今天,我们通过封装一个toast插件,来看看js面向对象是如何运行的. ...