c#连接.mdb具体步骤

c#连接.mdb具体步骤,第1张

using System

using System.Data.OleDb

class OleDbTest{

public static void Main()

{

//创建数据库连接

OleDbConnection aConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0Data Source=c:\\db1.mdb")

//创建command对象并保存sql查询语句

OleDbCommand aCommand = new OleDbCommand("select * from emp_test", aConnection)

try

{

aConnection.Open()

//创建datareader 对象来连接到表单

OleDbDataReader aReader = aCommand.ExecuteReader()

Console.WriteLine("This is the returned data from emp_test table")

//循环遍历数据库

while(aReader.Read())

{

Console.WriteLine(aReader.GetInt32(0).ToString())

}

//关闭reader对象

aReader.Close()

//关闭连接,这很重要

aConnection.Close()

}

//一些通常的异常处理

catch(OleDbException e)

{

Console.WriteLine("Error: {0}", e.Errors[0].Message)

}

}

}

成功运行这个程序的步骤

1.用msaccess创建一个名叫db1.mdb的数据库

2.创建一个名叫emp_test的表单

3.使它包含下列数据域

emp_code int

emp_name text

emp_ext text

4.将上面的代码保存到sample.cs文件中

5.确保数据库位于c:\并确保mdac2.6或是更新的版本已经被安装

6.编译运行

环境配置:

1. 先安装你的Access数据库(微软Office 2016中含有或者单独下载,下载地址:http://msdn.itellyou.cn/ 左侧选择应用程序一栏,注意选择下载64位,即标有X64的)

特殊情况查看意外解决方案 (A)

2. 安装Microsoft Access database engine 2007,他的作用暂时可理解为我们所写的程序与Access之间的沟通桥梁--“传话人”。

Microsoft Access database engine 2010(可以安装,但后面的代码是2007的,所以暂时建议使用2007)

下载地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=13255

Microsoft Access database engine 2007

下载地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=23734

特殊情况查看意外解决方案 (C)

连接与测试代码:

本例代码使用VS2010以上版本测试

建议去文末下载写好的含注释的测试代码看。

1. 新建你的数据库表

打开Access

选择空白数据库,为你的数据库中表项起一个名字 如 Test

设计你的存储表格

本例附有测试表格database1.accdb

2.

在你程序的stdafx.h头文件中加入

#import"C:/ProgramFiles/CommonFiles/System/ADO/msado15.dll"

rename("EOF","adoEOF"), rename("BOF","adoBOF")

(如果加载失败的话,去c:\program files\common files\system\ado查看是否有msado15.dll)

3.测试代码介绍

// LinkDBForHX.cpp : 定义控制台应用程序的入口点。

[cpp] view plain copy

#include "stdafx.h"

#include<iostream>//atlstr

#include<atlstr.h>

using namespace ADODB

using namespace std

class AdoAccess {

public:

_ConnectionPtr HX_pConnection// 数据库指针

_RecordsetPtrHX_pRecordset// 命令指针

_CommandPtr HX_pCommand// 记录指针

void OnInitADOConn() {

::CoInitialize(NULL)

try

{

HX_pConnection.CreateInstance(__uuidof(Connection))//等价于 //HX_pConnection.CreateInstance("ADODB.Connection")

//此句包含定位你数据库的所需的访问信息

_bstr_t strConnect = "Provider=Microsoft.ACE.OLEDB.12.0Data Source=Database1.accdbPersist Security Info=False "

//测试//_bstr_t strConnect = "Provider=Microsoft.Jet.OLEDB.4.0Data Source=Database1.accdbPersist Security Info=False"//此句包含定位你数据库的所需的访问信息

//测试//_bstr_t strConnect = "Provider=Microsoft.ACE.OLEDB.12.0Driver = { Microsoft Access Driver(*.mdb, *.accdb) }DBQ =Database1.accdbPersist Security Info=False "

//此句包含定位你数据库的所需的访问信息

//连接master数据库,无密码。

HX_pConnection->Open(strConnect,"","",adModeUnknown) //连接数据库

cout <<"连接成功,并获得智能指针" <<endl

}

catch (_com_error e)

{

cout <<e.Description() <<endl

}

}

void ExitConnect() {

if (HX_pRecordset != NULL)

HX_pRecordset->Close()

HX_pConnection->Close()

::CoUninitialize()

}

}

int main()

{

AdoAccess dataBase

//初始化

dataBase.OnInitADOConn()

dataBase.HX_pRecordset.CreateInstance("ADODB.Recordset")

//选择名为Test的表格

dataBase.HX_pRecordset->Open("select * from Test",

dataBase.HX_pConnection.GetInterfacePtr(),

adOpenDynamic,

adLockOptimistic,

adCmdText)

int i = 0

//读取其中的name字段所有数据,并显示

while (!dataBase.HX_pRecordset->adoEOF)

{

_variant_t var

string strValue

var = dataBase.HX_pRecordset->GetCollect("name")

//其他类似,都是通过HX_pRecordset传递SQL语句执行查找、添加、删除等命令

if (var.vt != VT_NULL)

strValue = _com_util::ConvertBSTRToString((_bstr_t)var)

++i

cout <<"name " <<i <<" " <<strValue <<endl

dataBase.HX_pRecordset->MoveNext()

}

//卸载com组件

dataBase.ExitConnect()

int xxxx = 0

cout <<"输入数字结束\n"

cin >>xxxx

return 0

}

意外情况解决方案

A 描述:未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序。

请正确安装环境配置中的第一步

B 若A无法解决问题。

选择 该应用程序的 应用程序池 ------>选择高级设置--------->启用32位应用程序 ------->true

*** 作如下:

按下win + R

在d出的对话框中输入inetmgr,然后按回车键

选择最左侧

点击应用程序池

再点击下图的DefaultAPPPool

选择高级设置

选择启用32位应用程序 ---置为True.

最后选择确认保存

C 重新安装 Microsoft Access databaseengine 2007

D 程序若提示缺少符号集,请下载相关符号集或者在联网状态下动态加载

#include<mysql/mysql.h>

#include<stdio.h>

intmain()

{

MYSQL*conn

MYSQL_RES*res

MYSQL_ROWrow

char*server="localhost"//本地连接

char*user="root"//

char*password="525215980"//mysql密码

char*database="student"//数据库名

char*query="select*fromclass"//需要查询的语句

intt,r

conn=mysql_init(NULL)

if(!mysql_real_connect(conn,server,user,password,database,0,NULL,0))

{

printf("Errorconnectingtodatabase:%s\n",mysql_error(conn))

}else{

printf("Connected...\n")

}

t=mysql_query(conn,query)

if(t)

{

printf("Errormakingquery:%s\n",mysql_error(conn))

}else{

printf("Querymade...\n")

res=mysql_use_result(conn)

if(res)

{

while((row=mysql_fetch_row(res))!=NULL)

{

//printf("num=%d\n",mysql_num_fields(res))//列数

for(t=0t<mysql_num_fields(res)t++)

printf("%8s",row[t])

printf("\n")

}

}

mysql_free_result(res)

}

mysql_close(conn)

return0

}

扩展资料

C语言使用注意事项:

1、指针是c语言的灵魂,一定要灵活的使用它:

(1)、指针的声明,创建,赋值,销毁等

(2)、指针的类型转换,传参,回调等

2、递归调用也会经常用到:

(1)、递归遍历树结构

(2)、递归搜索


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6696791.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存