vs2010 msdn上连接access2007做仓管系统~。求指导啊!!!!!!!!!!以身相许~

TA的最新馆藏[转]&[转]&[转]&[转]&[转]&
喜欢该文的人也喜欢Posts - 137,
Articles - 0,
Comments - 137
理论是实践的基础,实践又是检验真理的唯一标准!!
17:10 by 糯米粥, ... 阅读,
如果是个人用的小程序的话。一般都推荐用Sqlite和Access
使用SQlite数据库需要安装SQLite驱动,详情:
同样要使用Access数据库一必须安装Access驱动程序。驱动下载:
官网下载:
可以在收索你需要的版本。
微软ADO.NET数据提供程序
数据提供程序
System.Data.OleDb
System.Data.dll
Microsoft SQL Server
System.Data.SqlClient
System.Data.dll
Microsoft.SQL Server Mobile
System.Data.SqlServerCe
System.Data.SqlServerCe.dll
System.Data.Odbc
System.Data.dll
没有特定的数据提供程序直接映射到Jet引擎(比如微软的Access数据库),如果要和Acces数据文件交互,可以使用OLE DB数据提供程序或者ODBC数据提供程序。
由定义在System.Data.OleDb命名空间下的类组成的OLE DB 数据提供程序能让你访问所有支持基于传统COM的OLD DB协议的数据库,使用这个数据库提供程序,能非常简单地改变连接字符串中的&provider&,并能和各种OLE DB数据库进行通信。
如果你安装了微软的office。那么也安装了Access数据库,现在我们来一步一步完成对Access数据库的访问
打开Access数据库,选择创建数据库。选择保存路径和取名,单击创建即可
然后的界面就很熟悉了
&单击 "单击以添加" 可以选择数据类型
选择类型后。比如这里选择文本类型。就可以输入字段名称
这里你会看到前面有一个默认的列ID。默认是主键。自增的。你可以选择当前列。在属性中看到,当然。你也可以改变当前字段的数据类型
为了简化操作,我这里只创建3个字段用于测试
添加时间(默认值是当天)
创建时间createDate需要设置默认值,选择createDate列,在属性部分。单击默认值。输入Now(),确定即可。还可以设置表达式格式。可以自己去看
创建完成后。ctrl+s保存。输入表名称user,确定
现在创建一个控制台程序。来连接Access
添加引用:System.Data.dll,
添加命名空间:using System.Data.OleDb;
为了方便。把数据库拷贝到项目的Debug目录下面,编写测试代码
2 using System.Collections.G
3 using System.L
4 using System.T
5 using System.Data.OleDb; //引入命名空间 需要添加引用 System.Data.dll
7 namespace ConsoleApplication2
class Program
static void Main(string[] args)
//连接Access字符串
string conStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=userInfo.Persist Security Info=False";
//插入数据
string name = "张三";
int age = 18;
string sql = "insert into user(name,age)values(@name,@age)";
OleDbParameter[] para = {
new OleDbParameter("@name",OleDbType.VarChar),
new OleDbParameter("@age",OleDbType.Integer),
* 我不知道这样写有什么区别,除了更简单还有什么好处
new OleDbParameter("@age",age)
para[0].Value =
para[1].Value =
int rows = 0;
using (OleDbConnection connect = new OleDbConnection(conStr))
using (OleDbCommand cmd = new OleDbCommand(sql, connect))
if (para != null && para.Length & 0) cmd.Parameters.AddRange(para);
if (connect.State == System.Data.ConnectionState.Closed) connect.Open();
rows = cmd.ExecuteNonQuery();
if (rows & 0) Console.WriteLine("插入成功");
Console.ReadLine();
运行后提示错误:
仔细看sql语句是不是没有错误的语法。再仔细想想呢?对,user是关键字,需要加用[]包裹。像这样:[user]
string sql = "insert into [user](name,age)values(@name,@age)";
修改后在运行,人品爆发的成功了
是不是迫不及待的想看看Access数据库中是否真的插入成功呢?
打开数据库界面。F5刷新试试
当然,你可以可以编写sql查询
跟着一步一步下来是不是也没有想象中的那么难呢?其实什么都不难。只要你肯努力:)
来看看链接字符串:
&//连接Access字符串& string conStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=userInfo.Persist Security Info=False";
这里的Microsoft.ACE.OLEDB.12.0,是连接Excel对象的接口引擎,与之对应的是:microsoft.jet.oledb.4.0
那么问题来了:
Microsoft.jet.oledb.4.0和Microsoft.ACE.OLEDB.12.0引擎有什么区别呢?
共同点:都是做为连接Excel对象的接口引擎
对于不同的Excel版本,有两种接口可供选择:Microsoft.Jet.OLEDB.4.0(以下简称 Jet 引擎)和Microsoft.ACE.OLEDB.12.0(以下简称 ACE 引擎)。
Jet 引擎,可以访问 Office 97-2003,但不能访问 Office 2007。
ACE 引擎是随 Office 2007 一起发布的数据库连接组件,既可以访问 Office 2007,也可以访问 Office 97-2003。
另外:Microsoft.ACE.OLEDB.12.0 可以访问正在打开的 Excel 文件,而 Microsoft.Jet.OLEDB.4.0 是不可以的。
所以,在使用不同版本的office时,要注意使用合适的引擎。
我这里用的Access 2007,所以用的是ACE引擎
Data Source=userInfo.accdb。这里访问的是相对路径。因为数据库放在了Debug下面,但我来自火星。我就偏偏不喜欢把数据库放到Debug下面。
我想在项目中单独创建一个目录来存放数据库。那怎么办呢?好吧。程序员是伟大的。那你可以改路径,在项目下面创建一个db文件夹。把数据集拷贝到里面,结构图
从图可以看出来,从Debug目录到db目录要退两次,那么不就是 &..\..\& 。对吗?
那立马改改看看效果:
string conStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=..\..\db\userInfo.accdb;Persist Security Info=False";
对与否。你自己去测试下。哈哈。
记住:sql server中是可以拼接多条sql语句。然后一次性执行的。对吧,但Access是不行的。如果要执行多条sql语句。必须循环遍历。执行一条在执行下一条,直到海枯石烂。
为了更好的维护。当然是首选把连接字符串配置到app.config中
看看我已经配好了的
1 &?xml version="1.0"?&
2 &configuration&
&configSections&
&/configSections&
&connectionStrings&
&add name="GoodManage.Properties.Settings.GMConnectionString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\GM.accdb" providerName="System.Data.OleDb" /&
&/connectionStrings&
&appSettings&
&add key="accessCon" value="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=..\..\db\GM.Persist Security Info=False" /&
&add key="SQLConnString" value="provider=microsoft.jet.oledb.4.0;data source=" /&
&add key="dbPath" value="..\..\db\GM.accdb" /&
&add key="ClientSettingsProvider.ServiceUri" value="" /&
&/appSettings&
&supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" /&
&/startup&
&system.web&
&membership defaultProvider="ClientAuthenticationMembershipProvider"&
&providers&
&add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf" serviceUri="" /&
&/providers&
&/membership&
&roleManager defaultProvider="ClientRoleProvider" enabled="true"&
&providers&
&add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf" serviceUri="" cacheTimeout="86400" /&
&/providers&
&/roleManager&
&/system.web&
29 &/configuration&
最后提供一个SQLHelper.cs& 类
2 using System.Collections.G
3 using System.L
4 using System.T
5 using System.Data.SqlC
6 using System.D
7 using System.C
8 using System.Data.OleDb;
9 using System.W
10 namespace DAL
public class SQLHelper
//连接字符串
static string connStr = ConfigurationManager.AppSettings["accessCon"];
/// &summary&
/// 返回受影响的行数
/// &/summary&
/// &param name="comText"&&/param&
/// &param name="param"&&/param&
/// &returns&&/returns&
public static int ExecuteNonQuery(string comText, params OleDbParameter[] param)
using (OleDbConnection conn = new OleDbConnection(connStr))
using (OleDbCommand cmd = new OleDbCommand(comText, conn))
if (param != null && param.Length != 0)
cmd.Parameters.AddRange(param);
if (conn.State == ConnectionState.Closed)
conn.Open();
return cmd.ExecuteNonQuery();
/// &summary&
/// 返回数据对象
/// &/summary&
/// &param name="comText"&&/param&
/// &param name="param"&&/param&
/// &returns&&/returns&
public static object ExecuteScalar(string comText, params OleDbParameter[] param)
using (OleDbConnection conn = new OleDbConnection(connStr))
using (OleDbCommand cmd = new OleDbCommand(comText, conn))
if (param != null && param.Length != 0)
cmd.Parameters.AddRange(param);
if (conn.State == ConnectionState.Closed)
conn.Open();
return cmd.ExecuteScalar();
/// &summary&
/// 返回table
/// &/summary&
/// &param name="cmdText"&&/param&
/// &param name="param"&&/param&
/// &returns&&/returns&
public static DataTable Adapter(string cmdText, params OleDbParameter[] param)
DataTable dt = new DataTable();
//OleDbConnection con = new OleDbConnection();
using (OleDbDataAdapter oda = new OleDbDataAdapter(cmdText, connStr))
if (param != null && param.Length != 0)
oda.SelectCommand.Parameters.AddRange(param);
if (new OleDbConnection().State == ConnectionState.Closed)
new OleDbConnection(connStr).Open();
oda.Fill(dt);
using (SqlDataAdapter sda = new SqlDataAdapter(cmdText, connStr))
if (param != null && param.Length != 0)
sda.SelectCommand.Parameters.AddRange(param);
sda.Fill(dt);
/// &summary&
/// 向前读取记录
/// &/summary&
/// &param name="cmdText"&&/param&
/// &param name="param"&&/param&
/// &returns&&/returns&
public static OleDbDataReader ExectueReader(string cmdText, params OleDbParameter[] param)
OleDbConnection conn = new OleDbConnection(connStr);
using (OleDbCommand cmd = new OleDbCommand(cmdText, conn))
if (param != null && param.Length != 0)
cmd.Parameters.AddRange(param);
if (conn.State == ConnectionState.Closed)
conn.Open();
return cmd.ExecuteReader(CommandBehavior.CloseConnection);
/// &summary&
/// 读取存储过程
/// &/summary&
/// &param name="cmdText"&&/param&
/// &param name="type"&&/param&
/// &param name="param"&&/param&
/// &returns&&/returns&
public static DataTable GetPro(string cmdText, CommandType type, params OleDbParameter[] param)
DataTable dt = new DataTable();
using (OleDbDataAdapter sda = new OleDbDataAdapter(cmdText, connStr))
new OleDbCommand().CommandType = CommandType.StoredP
if (param != null && param.Length != 0)
sda.SelectCommand.Parameters.AddRange(param);
sda.Fill(dt);
sqlite、Access都只要安全驱动就可以用数据库。那sql server是不是也可以 呢。答案是正确的。
只要安装Microsoft SQL Server 2005 Express Edition,就可以使用sql数据库了
当安装vs2010或其他版本,也就顺带的安装了express Edition
Microsoft SQL Server 2005 Express Edition官网下载:
但要管理数据库就需要安装SQL Server Management Studio。
在网上找到一片关于Express edition 开启远程连接的方法,我没尝试过。真的。我不骗你
转载于此:
SQL Server 2005 Express 作为微软数据库的低端解决方案,在开发小型应用和WEB应用中有广泛的使用。但是SQL Server 2005 Exrpress在默认安装下只允许本机访问,如何启用网络访问功能就很有必要,现在我简单的介绍一下。
1、&确 认成功安装SQL Server 2005 Express和 数据库服务已经启动。安装完成后,可以通过随SQL Server 2005 Express一同安装的工具 SQL Server Configuration Manager 查看数据库服务和其他的配置信息。
上图显示数据库服务已经启用。
2、&查 看SQL Server Express 2005 网络配置信息(SQL Server 2005 Network Configuration――& Protocols for SQLEXPRESS)。默认的情况下右边列表中的Named Pipes和TCP/IP的状态为Disable,即没有启用。右键点击这两项,在弹出菜单中选中Enable启用这两个协议,如下图。
3、&在TCP/IP协议上双击鼠标,弹出对话框。修改对话框Protocol属性页中的&Listen All &项设为&no&。IP Address属性页中,修改你要数据库服务监听的IP地址的属性,修改Enabled属性为Yes,修改TCP Dynamic Ports属性为空,TCP Port项在默认安装下为空,现在修改为我们监听端口1433。修改后的状态如下图所示;
4、&启动管理工具
,管理界面如下所示:
选中&Surface Area Configuration for Services and Connection&选项
5、&改修改DATA Engine的Remote Connection属性,修改后的属性如下图所示:
6、&完成以上操作后需要重新启动数据库服务才能使修改生效,下图的操作可以完成数据库服务的重启。
7、&重启后,可以在命令窗口输入如下命令&netstat&- na&命令查看服务器监听的所有端口,如果我们设备的1433端口正在监听,我们启用SQL Server 2005 Express网络操作成功。当然也可以使用telnet 命令来验证数据库操作是否成功。使用netstat命令操作如下图所示。
&好了。至此。完Dish MFC操作ACCESS数据库(VS2010和 2007) ADO-ODBC 编程 238万源代码下载-
&文件名称: Dish
& & & & &&]
&&所属分类:
&&开发工具: Visual C++
&&文件大小: 160 KB
&&上传时间:
&&下载次数: 93
&&提 供 者:
&详细说明:MFC操作ACCESS数据库(VS2010和ACCESS2007)-MFC operation ACCESS database (VS2010 and ACCESS2007)
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&Dish&&....\Dish&&....\Dish.sln&&....\Dish.suo&&....\....\Dish.aps&&....\....\Dish.cpp&&....\....\Dish.h&&....\....\Dish.rc&&....\....\Dish.vcxproj&&....\....\Dish.vcxproj.filters&&....\....\Dish.vcxproj.user&&....\....\DishDlg.cpp&&....\....\DishDlg.h&&....\....\ReadMe.txt&&....\....\res&&....\....\resource.h&&....\....\...\Dish.ico&&....\....\...\Dish.rc2&&....\....\stdafx.cpp&&....\....\stdafx.h&&....\....\targetver.h&&....\....\ylmmee.accdb&&....\ipch&&....\....\dish-eee42fe3
&近期下载过的用户:
&相关搜索:
&&&&&&&&&&
&输入关键字,在本站238万海量源码库中尽情搜索:
&[] - 一份很经典的资料,有意认真向vc发展的同学 朋友,编程爱好者可以从速下载,绝对经典的MFC教程。
&[] - VS2010自带的MFC例程,是很好的自学参考资料。
&[] - 在VS2010中MFC实现对Excel表格的动态读、写、创建。其中包含详细的实现过程截图,简单易懂。
&[] - MFC架构下,通过ADO方式连接Access数据库的实例,事先了完整的添加、修改、删除功能,VS2010编写。特点是实现了数据库中日期数据类型的读写,比较有借鉴意义。
&[] - windows下的socket测试,IDE:VS2010,release目录下的exe可以直接执行,先开服务器,再开客户端,最大连接数为2个
&[] - MFC架构下,通过ADO方式连接Access数据库的实例,事先了完整的添加、修改、删除功能,VS2010编写。特点是实现了数据库中日期数据类型的读写,比较有借鉴意义。
&[] - windows下的socket测试,IDE:VS2010,release目录下的exe可以直接执行,先开服务器,再开客户端,最大连接数为2个
&[] - 用ODBC写的动态获取数据的一个类第一次在博客园写博文,由于文采不怎么好,即使是自己很熟悉的东西,写起来也会感觉到不知从何讲起,我想写的多了就好了。
这篇文章主要是介绍怎么用c# 语言 vs2010连接access数据库的,连接字符串写到app.config配置文件中,具体的数据库操作写在一个名为sqlhelper.cs的类中,希望这篇文章能够帮助一些新手菜鸟。
1、app.config文件的代码
(1)这是连接access2007 access2010版数据库的连接字符串,其中Data Source后跟的是数据库文件的存放路径,Database Password为access数据库访问密码
1 &configuration&
2 &appSettings&
3 &add key="connstr" value="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\\data2\\CRMdata.Jet OLEDB:Database Password=123456" /&
4 &/appSettings&
6 &/configuration&
连接字符串
(2)连接access2003版本数据库的连接字符串
1 &configuration&
2 &appSettings&
3 &add key="connstr" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\\data2\\CRMdata.Jet OLEDB:Database Password=123456" /&
4 &/appSettings&
6 &/configuration&
03版连接字符串
2、sqlhelper.cs文件代码
& &注意:要想执行oledb相关的命令必须引用,//using System.D& & & & & & & & & & & & & & & & & & & & & & & & & & & & &// using System.Data.OleDb;
& & //读取配置文件连接字符串 的语句中提示ConfigurationManager对象不存在时,解决办法,在资源管理器中&右击 引用 文件夹 选择添加引用,&在net选项中选中System.Configuration 单击确定即可&& 说白了就是添加引用&System.Configuration.&
2 using System.Collections.G
3 using System.L
4 using System.T
5 using System.C
6 using System.D
7 using System.Data.OleDb;
9 namespace CRMProject
11 class Sqlhelper
//读取配置文件连接字符串
public static readonly string connstr = System.Configuration.ConfigurationManager.AppSettings["connstr"].ToString();
public static int ExecuteNonQuery(string cmdText,
params OleDbParameter[] parameters)
using (OleDbConnection conn =new OleDbConnection(connstr))
conn.Open();
using (OleDbCommand cmd = conn.CreateCommand())
mandText = cmdT
mandTimeout = 3000;
cmd.Parameters.AddRange(parameters);
return cmd.ExecuteNonQuery();
public static object ExecuteScalar(string cmdText,params OleDbParameter[] parameters)
using (OleDbConnection conn = new OleDbConnection(connstr))
conn.Open();
using (OleDbCommand cmd = conn.CreateCommand())
mandText = cmdT
mandTimeout = 3000;
cmd.Parameters.AddRange(parameters);
return cmd.ExecuteScalar();
public static DataTable ExecuteDataTable(string cmdText,params OleDbParameter[] parameters)
using (OleDbConnection conn = new OleDbConnection(connstr))
conn.Open();
using (OleDbCommand cmd = conn.CreateCommand())
mandText = cmdT
mandTimeout = 3000;
cmd.Parameters.AddRange(parameters);
using (OleDbDataAdapter adapter = new OleDbDataAdapter(cmd))
DataTable dt = new DataTable();
adapter.Fill(dt);
public static DataSet ExecuteDataSet(string cmdText,params OleDbParameter[] parameters)
using (OleDbConnection conn = new OleDbConnection(connstr))
conn.Open();
using (OleDbCommand cmd = conn.CreateCommand())
mandText = cmdT
mandTimeout = 3000;
cmd.Parameters.AddRange(parameters);
using (OleDbDataAdapter adapter = new OleDbDataAdapter(cmd))
DataSet dt =new DataSet();
adapter.Fill(dt);
public static OleDbDataReader ExecuteDataReader(string cmdText,params OleDbParameter[] parameters)
OleDbConnection conn = new OleDbConnection(connstr);
conn.Open();
using (OleDbCommand cmd = conn.CreateCommand())
mandText = cmdT
mandTimeout = 3000;
cmd.Parameters.AddRange(parameters);
return cmd.ExecuteReader(CommandBehavior.CloseConnection);
sqlhelper.cs
在具体的业务类中调用sqlhelper.cs中的方法即可
阅读(...) 评论()VS2010连接数据库的操作(SQLServer以及Access等) - MSSQL - 次元立方网 - 电脑知识与技术互动交流平台
VS2010连接数据库的操作(SQLServer以及Access等)
1.首先建立一个数据库文件
2.打开VS2010/VS2012/VS2013
3.建立一个工程名字叫做***
4.看到状态栏:工具-&连接到数据库
5.点击高级,把DataSource的内容和Provider的内容复制到 _bstr_t strConnect =&Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:/graduation project/HouseRealty/Limite.Persist Security Info=False&;//access2007(添加过ADO类的前提下,下面会讲到怎么添加ADO类)
6.添加ADO类,项目-&添加类(添加C++类,不是基于MFC的类),名字叫做CADOConn
MFC 对 Windows 公共控件的支持
#import &C:\\Program Files\\Common Files\\System\\ado\\msado15.dll& no_namespace rename(&EOF&,&adoEOF&)rename(&BOF&,&adoBOF&)
#endif // _AFX_NO_AFXCMN_SUPPORT
#include &afxcontrolbars.h&
// 功能区和控件条的
(2)在ADOConn.h文件中添加:
class CADOConn
CADOConn(void);
~CADOConn(void);
_RecordsetPtr m_pR//记录集指针
_ConnectionPtr m_pC
void OnInitADOConn();//连接数据源
_RecordsetPtr& GetRecordset(_bstr_t bstrSQL);//获取打开的记录集指针
BOOL ExecuteSQL(_bstr_t bstrSQL);//执行SQL语句
void ExitConnect();//断开数据连接
(3)在ADOConn.cpp中添加
#include &StdAfx.h&
#include &ADOConn.h&
CADOConn::CADOConn(void)
CADOConn::~CADOConn(void)
void CADOConn::OnInitADOConn()
::CoInitialize(NULL);
m_pConnection.CreateInstance(&ADODB.Connection&);
// _bstr_t strConnect=&Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Limite.mdb&;//.mdb放在工程目录下
access2003
_bstr_t strConnect =&Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:/graduation project/HouseRealty/Limite.Persist Security Info=False&;//access2007
m_pConnection-&Open(strConnect,&&,&&,adModeUnknown);
// AfxMessageBox(&数据库连接成功&);
catch(_com_error e)
AfxMessageBox(&连接失败&);
void CADOConn::ExitConnect()
if(m_pRecordset!=NULL)//关闭记录集和断开数据源链接
m_pConnection-&Close();
::CoUninitialize();//释放COM环境
_RecordsetPtr& CADOConn::GetRecordset(_bstr_t bstrSQL)
//打开记录集,返回记录集指针
if(m_pConnection==NULL)
OnInitADOConn();
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pRecordset-&Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,\
adLockOptimistic,adCmdText);
catch (_com_error e)
AfxMessageBox(&记楼盘数据打开失败&);
return m_pR
BOOL CADOConn::ExecuteSQL(_bstr_t bstrSQL)
if(m_pConnection==NULL)
OnInitADOConn();
m_pConnection-&Execute(bstrSQL,NULL,adCmdText);
catch (_com_error e)
AfxMessageBox(&不能打开楼盘数据&);
8.经过以上步骤,VS连接数据库大致就可以成功了。
延伸阅读:
SQLServer代理是所有实时数据库的核心。代理有很多不...
本教程为 李华明 编著的iOS-Cocos2d游戏开发系列教程:教程涵盖关于i......
专题主要学习DirectX的初级编程入门学习,对Directx11的入门及初学者有......
&面向对象的JavaScript&这一说法多少有些冗余,因为JavaScript 语言本......
Windows7系统专题 无论是升级操作系统、资料备份、加强资料的安全及管......

我要回帖

更多关于 vs2010 msdn 的文章

 

随机推荐