c数据库连接测试
Ⅰ c++数据库如何连接
1.c++连接连接access
程序代码:
using system.data;
using system.data.oledb;
..
string strconnection="provider=microsoft.jet.oledb.4.0;";
strconnection+=@"data source=c:begaspnetnorthwind.mdb";
oledbconnection objconnection=new oledbconnection(strconnection);
..
objconnection.open();
objconnection.close();
2.c++连接sql server
程序代码:
using system.data;
using system.data.sqlclient;
..
string strconnection="user id=sa;password=;";
strconnection+="initial catalog=northwind;server=yoursqlserver;";
strconnection+="connect timeout=30";
sqlconnection objconnection=new sqlconnection(strconnection);
..
objconnection.open();
objconnection.close();
3.c++连接mysql
程序代码:
using mysqldrivercs;
// 建立数据库连接
mysqlconnection dbconn;
dbconn = new mysqlconnection(new mysqlconnectionstring("localhost","mysql","root","",3306).asstring);
dbconn.open();
// 执行查询语句
mysqlcommand dbcomm;
dbcomm = new mysqlcommand("select host,user from user",dbconn);
// 读取数据
mysqldatareader dbreader = dbcomm.executereaderex();
// 显示数据
try
{
while (dbreader.read())
{
console.writeline("host = {0} and user = {1}", dbreader.getstring(0),dbreader.getstring(1));
}
}
finally
{
dbreader.close();
dbconn.close();
}
//关闭数据库连接
dbconn.close();
4.c++连接ibm db2
程序代码:
oledbconnection1.open();
//打开数据库连接
oledbdataadapter1.fill(dataset1,"address");
//将得来的数据填入dataset
datagrid1.databind();
//绑定数据
oledbconnection1.close();
//关闭连接
//增加数据库数据
在web form上新增对应字段数量个数的textbox,及一个button,为该按键增加click响应事件代码如下:
this.oledbinsertcommand1.commandtext = "insertsintosaddress(name,
email, age, address) values
(’"+textbox1.text+"’,’"+textbox2.text+"’,’"+textbox3.text+"’,’"+textbox4.text+"’)";
oledbinsertcommand1.connection.open();
//打开连接
oledbinsertcommand1.executenonquery();
//执行该sql语句
oledbinsertcommand1.connection.close();
//关闭连接
Ⅱ c语言怎样连接数据库(c语言和数据库连接)
1、配置ODBC数据源。
2、使用SQL函数进行连接。
对于1、配置数据源,配置完以后就可以编程操作数据库了。
对于2、使用SQL函数进行连接,参考代码如下:
#include
#include
#include
voidmain()
{
HENVhenv;//环境句柄
HDBChdbc;//数据源句柄
HSTMThstmt;//执行语句句柄
unsignedchardatasource[]="数据源名称";//即源中设置的源名称
unsignedcharuser[]="用户名";//数袭此据库的帐户拍野迅名
unsignedcharpwd[]="密码";//数据库的密码
unsignedcharsearch[]="selectxmfromstuwherexh=0";
SQLRETURNretcode;//记录各SQL函数的返回情况
//分配环境句柄
retcode=SQLAllocEnv(&henv);//等介于(SQL_HANDLE_ENV,SQL_NULL
,&henv);
//设置ODBC环境版本号为3.0
retcode=(henv,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0);
//分配连接句柄
retcode=(henv,&hdbc);//等介于(SQL_HANDLE_DBC,henv,&hdbc);
//设置连接属性,登录超时为*rgbValue秒(可以没有)
//(hdbc,SQL_LOGIN_TIMEOUT,(SQLPOINTER)(rgbValue),0);
//直接连接数据源
//如果是windows身份验证,第二、三参数可以是
,也可以是任何字串
//SQL_NTS即"
retcode=SQLConnect(hdbc,datasource,SQL_NTS,user,SQL_NTS,pwd,SQL_NTS);
//分配语句句柄
retcode=(hdbc,&hstmt);//等介于(SQL_HANDLE_STMT,hdbc,&hstmt);
//直接执行查询语句
retcode=(hstmt,search,SQL_NTS);
//将数据缓冲区绑定数据库中的相应脊尘字段(i是查询结果集列号,queryData是绑定缓冲区,BUFF_LENGTH是缓冲区长度)
SQLBindCol(hstmt,i,SQL_C_CHAR,queryData[i-1],BUFF_LENGTH,0);
//遍历结果集到相应缓冲区queryData
SQLFetch(hstmt);
/*
*对遍历结果的相关操作,如显示等
*/
//注意释放顺序,否则会造成未知错误!
(SQL_HANDLE_STMT,hstmt);
(hdbc);
(SQL_HANDLE_DBC,hdbc);
(SQL_HANDLE_ENV,henv);
}
Ⅲ 用C语言怎么实现与数据库的连接
举个例子巧念,连接SQL:
// 打开数据库
strDBClass.Format(_T("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Jet OLEDB:Database Password=%s"), m_strUnEntryptMdbFilePath,m_strMDBPassword);
// 创建连接
HRESULT hr = m_pConnection.CreateInstance(_uuidof(Connection));
_ConnectionPtr m_pConnection->判颂Open(m_strDBClass,_T(""孝冲困),_T(""),adConnectUnspecified);
// 声明表单指针
_RecordsetPtr pBandRecordset;
Ⅳ 在VS里C#中怎么实现数据库的连接
一个简单的方法就是拖入sql datasource控件 连接数据库 完成后 将sql datasource控件删除 打开web.config就能看到生成的数据库连接字符串
Ⅳ C/C++ 数据库连接方法,高分
建议用ado连接,网上的ado封装好的库有很多,随便下一个就行。
包含了头文件和cpp文件后,可以这样
CADORecordset* pRs = new CADORecordset((static_cast<CFrenchApp *>(AfxGetApp()))->g_pDb);
Sql1="select word,wordtype,meaning,tag,id from word "+Where;
int i=0;
if(pRs->Open((LPCTSTR)Sql1))
{
while(!pRs->IsEof())
{
pRs->GetFieldValue(0,word[i].word);
pRs->GetFieldValue(3,word[i].tag);
pRs->GetFieldValue(1,word[i].wordtype);
pRs->GetFieldValue(2,word[i].meaning);
pRs->GetFieldValue(4,word[i].id);
pRs->MoveNext();
i++;
}
pRs->Close();
}
m_max=i;
m_cur=0;
delete pRs;
这样就可以得到数悉伍闭据库睁裂里的东橘碧西
Ⅵ 用C语言怎么实现与数据库的连接
#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 ",mysql_error(conn));
}else{
printf("Connected... ");
}
t=mysql_query(conn,query);
if(t)
{
printf("Errormakingquery:%s ",mysql_error(conn));
}else{
printf("Querymade... ");
res=mysql_use_result(conn);
if(res)
{
while((row=mysql_fetch_row(res))!=NULL)
{
//printf("num=%d ",mysql_num_fields(res));//列数
for(t=0;t<mysql_num_fields(res);t++)
printf("%8s",row[t]);
printf(" ");
}
}
mysql_free_result(res);
}
mysql_close(conn);
return0;
}
(6)c数据库连接测试扩展阅读
C语言使用注意事项:
1、指针是c语言的灵魂,一定要灵活的使用它:
(1)、指针的声明,创建,赋值,销毁等
(2)、指针的类型转换,传参,回调等
2、递归调用也会经常用到:
(1)、递归遍历树结构
(2)、递归搜索
Ⅶ c/c++怎么连接数据库,并执行SQL语句
C++连接SQL数据库第一步 系统配置
1.设置SQLSERVER服务器为SQL登录方式,并且系统安全性中的sa用户要设置登录功能为“启用”,还有必须要有密码。
2.需要在ODBC中进行数据源配置,数据源选\”SQL SERVER”,登录方式使用“使用输入用户登录ID和密码的SQL SERVER验证”,并填写登录名(sa)和密码,注意一点,密码不能为空,这就意味着你的sa用户必须得有密码。否则无法通过系统本身的安全策略。测试通过就完成了配置。
C++连接SQL数据库第二步 C++与SQL连接初始化
1.在你所建立的C++项目中的stdafx.h头文件中引入ADO
具体代码如下
#import “c:\Program Files\Common Files\System\ado\msado15.dll”
no_namespace rename(”EOF”, “adoEOF”) rename(”BOF”, “adoBOF”)
2.定义_ConnectionPtr变量后调用Connection对象的Open方法建立与服务器的连接。
数据类型_ConnectionPtr实际上是由类模板_com_ptr_t得到的一个具体的实例类。_ConnectionPtr类封装了Connection对象的Idispatch接口指针及其一些必要的操作。可以通过这个指针操纵Connection对象。
例如连接SQLServer数据库,代码如下:
//连接到MS SQL Server
//初始化指针
_ConnectionPtr pMyConnect = NULL;
HRESULT hr = pMyConnect.CreateInstance(__uuidof(Connection));
if (FAILED(hr))
return;
//初始化链接参数
_bstr_t strConnect = “Provider=SQLOLEDB;
Server=hch;
Database=mytest;
uid=sa; pwd=sa;”; //Database指你系统中的数据库
//执行连接
try
{
// Open方法连接字串必须四BSTR或者_bstr_t类型
pMyConnect->Open(strConnect, “”, “”, NULL);
}
catch(_com_error &e)
{
MessageBox(e.Description(), “警告”, MB_OK|MB_ICONINFORMATION);
}//发生链接错误
C++连接SQL数据库第三步 简单的数据连接
//定义_RecordsetPtr变量,调用它Recordset对象的Open,即可打开一个数据集
//初始化过程 以下是个实例
_RecordsetPtr pRecordset;
if (FAILED(pRecordset.CreateInstance(__uuidof(Recordset))))
{
return;
}
//执行操作
try
{
pRecordset->Open(_variant_t(”userinfo”),
_variant_t((IDispatch*)pMyConnect),
adOpenKeyset, adLockOptimistic, adCmdTable);
}
catch (_com_error &e)
{
MessageBox(”无法打开userinfo表\”, “系统提示”,
MB_OK|MB_ICONINFORMATION);
}
C++连接SQL数据库第四步 执行SQL语句
这里是关键,我认为只要你懂点SQL语句那么一切都会方便许多比用上面的方法简单,更有效率点。
首先
m_pConnection.CreateInstance(_uuidof(Connection));
//初始化Connection指针
m_pRecordset.CreateInstance(__uuidof(Recordset));
//初始化Recordset指针
CString strSql=”select * from tb_goods”;//具体执行的SQL语句
m_pRecordset=m_pConnection->Execute(_bstr_t(strSql),
NULL, adCmdText);//将查询数据导入m_pRecordset数据容器
至此 你的SQL语句已经执行完成了m_pRecordset内的数据就是你执行的结果。
取得记录:
while(!m_pRecordset->adoEOF)//遍历并读取name列的记录并输出
{
CString temp = (TCHAR *)(_bstr_t)m_pRecordset->GetFields()->GetItem
(”name”)->Value;
AfxMessageBox(temp);
pRecordset->MoveNext();
}
插入记录
//记得初始化指针再执行以下操作
CString strsql;
strsql.Format(”insert into tb_goods(no,name, price)
values(’%d’,'%s’, %d)”,m_intNo,m_strName,m_intPrice);
m_pRecordset=m_pConnection->
Execute(_bstr_t(strsql),NULL,adCmdText);
修改记录
CString strsql;
strsql.Format(”update tb_goods set name=’%s’ ,
price=%d where no=%d “,m_strName,m_intPrice,m_intNo);
m_pRecordset=m_pConnection->Execute(_bstr_t(strsql),NULL,adCmdText);
删除记录
CString strsql;
strsql.Format(”delete from tb_goodswhere no= ‘%d’ “,m_intNo);
m_pRecordset=m_pConnection->Execute(_bstr_t(strsql),NULL,adCmdText)
Ⅷ 帮忙用C++实现与数据库的连接
用VC中的MFC吧,很好上手
#include <afxdb.h>
/* 连接数据库 */
CDatabase db;
BOOL bRtn;
try {
bRtn = db.OpenEx("DSN=数据源名;UID=sa", CDatabase::noOdbcDialog);
}catch (CDBException *pDBEx) {
pDBEx->ReportError();
}catch (CMemoryException *pMemEx) {
pMemEx->ReportError();
}
if (!bRtn)
printf("连接数据库失败!");
/* 操作结束后,关闭数据库 */
db.Close();
添加记录操作
#include <afxdb.h>
CDatabase db;
BOOL bRtn;
CString sql;
/* 1、连接数据库,见(1) */
/* 2、生成INSERT语句,丛肆稿赋给sql,例如: */
sql = "insert into student_table (s_sID, s_sName, s_sAge) values (‘001’, ‘ZhangSan’, 20);" ;
/* 3、往数据库中添加纪录 */
try {
db.ExecuteSQL(sql);
} catch (CDBException *pDBEx) {
pDBEx->ReportError();
}
/* 4、关闭数据库 */
db.Close();
删除记录操作
#include <afxdb.h>
CDatabase db;
BOOL bRtn;
CString sql;
/* 1、连接数据库,见(1) */
/* 2、生成DELETE语句,赋给sql,例如: */
sql = "delete from student_table where s_SID =’001’;" ;
/* 3、从数据库中删除纪录 */
try {
db.ExecuteSQL(sql);
} catch (CDBException *pDBEx) {
pDBEx->ReportError();
}
/* 4、关闭数据库 */
db.Close();
修改记录操作
#include <afxdb.h>
CDatabase db;
BOOL bRtn;
CString sql;
/* 1、连接数据库,见(1) */
/* 2、生成UPDATE语句,赋给sql,例如: */
sql = "update from student_table set s_sName=‘LiSi’,s_sAge=21 where s_SID =‘001’;" ;
/* 3、更新数据库中的纪录 */
try {
db.ExecuteSQL(sql);
} catch (CDBException *pDBEx) {
pDBEx->ReportError();
}
/* 4、关闭数据库 */
db.Close();
查询、统计操作
#include <myRecordset.h>渗孝
CDatabase db;
BOOL bRtn;
CString sql;
/* 1、连雹渣接数据库,见(1) */
/* 2、生成查询/统计语句,赋给sql,例如: */
sql = "Select * From student_table where s_sAge=20;" ;
/* 3、打开记录集,查询/统计 */
CMyRecordset rs(&db);
try {
bRtn = rs.Open(CRecordset::snapshot,sql);
} catch(CDBException *pDBEx) {
pDBEx->ReportError();
} catch(CMemoryException *pMemEx) {
pMemEx->ReportError();
}
if(!bRtn) {
AfxMessageBox("Query table failed!",MB_OK|MB_ICONERROR);
return ;
}
/* 4、逐条获取查询结果 */
for(rs.MoveFirst();!rs.IsEOF();rs.MoveNext()) {
// TODO: Add code here
}
/* 5、关闭记录集、数据库 */
rs.Close();
db.Close();
注:对连接查询,可以先创建视图,再对视图进行查询。
Ⅸ c语言如何和数据库连接
C函数库没有相应的数据库连接接口函数。
只能够尝试用二进制或文本模式读写文件,来模拟相应的数据库操作等。
可以尝试下C++库类,里面有数据库连接的接口
Ⅹ c++怎么连接access数据库
环境配置:
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
#include "stdafx.h"
#include<iostream>//atlstr
#include<atlstr.h>
using namespace ADODB;
using namespace std;
class AdoAccess {
public:
_ConnectionPtr HX_pConnection; // 数据库指针
_RecordsetPtr HX_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.0;Data Source=Database1.accdb;Persist Security Info=False ";
//测试//_bstr_t strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Database1.accdb;Persist Security Info=False";//此句包含定位你数据库的所需的访问信息
//测试//_bstr_t strConnect = "Provider=Microsoft.ACE.OLEDB.12.0;Driver = { Microsoft Access Driver(*.mdb, *.accdb) }; DBQ =Database1.accdb;Persist 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
在弹出的对话框中输入inetmgr,然后按回车键
选择最左侧
点击应用程序池
再点击下图的DefaultAPPPool
选择高级设置
选择启用32位应用程序 ---置为True.
最后选择确认保存
C 重新安装 Microsoft Access databaseengine 2007
D 程序若提示缺少符号集,请下载相关符号集或者在联网状态下动态加载