当前位置:首页 » 数据仓库 » mfc操作sql数据库
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

mfc操作sql数据库

发布时间: 2023-04-27 09:40:47

⑴ 用MFC怎么用odbc 连接sql数据库,求详解啊

首先你把数据源配置好,具体过程在网络上可以搜到,先建一个数据库,添加好你要用到的表,然后在里面选择SQL server,这些就不说了,具体在MFC中连接的时候,首先你建一个MFC项目,把你要用的对话框弄好,再新建里面找MFC ODBC使用者,会出现选择数据源的对话框,在里面找你要用到的数据库,确定后会出现选择数据库对象的对话框,可能会出现登陆的对话框,选择你要用的数据库对象就可以了,说的不是很详细,没有实际的做,凭印象的,希望可以帮到你

⑵ mfc如何将编辑框内容插入sql数据库,编辑框成员m_name,数据库名link,表Table,列name,CDatabase db

1、先连接数据库,并打开数据库
2、将m_name编辑框内的内容如果是字符串的话,直接插入如果不是,要转换成字符串:
3、然后些SQl语句:insert into Table (name)values(m_name);
4、执行SQL语句,并更新数据库即可。
大概过程是这样的,具体的语句你应该可以写出来的

⑶ MFC中怎么连接SQL数据库

1. 由于使用的是ADO架构 首先需要在StdAfx.h文件中导入msado15.dll 和 oledb32.dll连个动态连接库文件倒入方式为:
#import "msado15.dll" no_namespace rename ("EOF", "adoEOF")
#import "oledb32.dll" no_namespace
两个文件的实际所在位置由于系统安装的位置不同而不同。
no_namespace 使用无名命名空间 程序段比较短关联较少的话可以这样使用 否则请使用命名空间以免发生冲突,
rename ("EOF", "adoEOF") 重命名 EOF为 adoEOF 以免常量冲突。
2. 关于SQL Server以及的一些要求 首先安装SQL Server的机器必须是 NT架构以上的系统 如果使用的是Windows XP SP2 的话需要对SQL Server打上SP4补丁方可网络访问
3. 最好建立一个单独的数据库操作类 使程序中需要对数据库进行操作的地方继承这个类。
4. 类成员如下
_ConnectionPtr m_pConnection; // 数据库
_RecordsetPtr m_pRecordset; // 命令
_CommandPtr m_pCommand; // 记录
5. 方法如下
bool connect2database();
bool check_user(_bstr_t name, _bstr_t pwd);
bool CBugListCommon::connect2database()
{
_bstr_t ConnectionString = "Provider=sqloledb;Data Source='SQLSERVER';Integrated Security='SSPI';Initial Catalog='Test';User Id='sa';Password='sa';";
//Data Source 数据库实例名
//Initial Catalog表名
//User Id 用户名
//Password 密码
if(FAILED(CoInitialize(NULL)))
return FALSE;
m_pConnection.CreateInstance(__uuidof(Connection));
try
{
m_pConnection->Open(ConnectionString , "", "", adConnectUnspecified);
return TRUE;
}
catch(_com_error e)
{
AfxMessageBox("数据库连接失败");
return FALSE;
}
return FALSE;
}

bool CBugListCommon::check_user(_bstr_t name, _bstr_t pwd)
{
_bstr_t cmdtxt = "SELECT User_Name, User_PassWord FROM User_Table WHERE (User_Name = N'";
cmdtxt = cmdtxt + name + "')";
// cmdtxt == SELECT User_Name, User_PassWord FROM User_Table WHERE (User_Name = N'name')
m_pCommand.CreateInstance("ADODB.Command");
m_pCommand->ActiveConnection = m_pConnection;
m_pCommand->CommandText = cmdtxt;
m_pRecordset = m_pCommand->Execute(NULL, NULL, adCmdText);
if(!m_pRecordset->adoEOF)
{
_bstr_t tn;
tn = m_pRecordset->GetCollect("User_PassWord");
if(tn == pwd)
return TRUE;
else
return FALSE;
}
return FALSE;
}

⑷ MFC怎么连接MYSQL数据库求详细(mfc连接数据库sqlserver)

用ADO连接SQL数据库

步骤如下:

1,在头文件"StdAfx.h"中导入#import"C:/ProgramFiles/CommonFiles/System/ado/msado15.dll"no_namespacerename("EOF","rsEOF"),记住把这句话放到endif的后面,不然会报错,这样处理好之后,数升编译后又一个警告,可以忽略

2,在对话框的()函数中写上"::(NULL);::AfxOleInit();”在主程序的初始化函数中,它就可以写一次

3,在对话框类的头文件中,声明如下变量禅戚:_m_pConnection;_pRst;

连接数据库的代码如下:

try

{

hr=m_pConnection.("ADODB.Connection");

if(SUCCEEDED(hr))

{

hr=m_pConnection-

}

}

catch(_com_errore)

{

(e.());

}

”数据库的驱动器名称“在控制面板里,以大薯袭老图标查看,可以看到一个"ODBC",双击打开,在”驱动程序“里面在最下面有两个”SQLServer"和“SQLNativeClient"如果你是2000的SQL版本,就选”SQLServer"及“Provider=SQLServer"2005的"Provider=SQLNativeClient"DataSource=?,?的值可以是”localhost"也可以是你的数据库服务器的名称,连接数据库的时候可以看到,复制一下就可以了。

处理完之后就可以连接到你想要连接的数据库上了!!

⑸ mfc 怎么连接server sql

一、测试环境
操作系统:WindowsXP
数据库:SQLServer2005
IDE:VC++6.0

二、初始化ADO
在.h文件中添加:
_ConnectionPtrm_pConnection;
_RecordsetPtrm_pRst;

在.cpp中添加函数:
BOOLXXXApp::InitADO()
{
CoInitialize(NULL);
HRESULThrpC,hrpR;
hrpC=m_pConnection.CreateInstance(__uuidof(Connection));
hrpR=m_pRst.CreateInstance(__uuidof(Recordset));
if(SUCCEEDED(hrpC)&& SUCCEEDED(hrpR))
returnTRUE;
returnFALSE;
}

三、连接数据库的函数
boolXXXApp::ConnectMDBDatabase()
{
CStringtemp;
_variant_tvar;
CStringsql;
sql.Format("driver={SQLServer};Server=TEST;DATABASE=TEST;UID=sa;PWD=123456");
try
{
if(((XXXApp*)AfxGetApp())->m_pConnection->State)
((XXXApp*)AfxGetApp())->m_pConnection->Close();
((XXXApp*)AfxGetApp())->m_pConnection->ConnectionTimeout=15;
((XXXApp *)AfxGetApp())->m_pConnection->Open((char*)(LPCTSTR)sql,"","",adModeUnknown);
}
catch(_com_errore)
{
returnFALSE;
}

returnTRUE;
}
四、建立连接(在InitInstance()中添加)
//初始化ADO
if(!((XXXApp*)AfxGetApp())->InitADO())
{
returnFALSE;
}

//连接生产数据库
if(!this->ConnectMDBDatabase())
{
AfxMessageBox("连接生产数据库失败",MB_OK,0);
returnFALSE;
}

五、操作数据库信息

BOOL XXX::GetOrderList()//查询和插入
{
CStringtemp;
_variant_tvar;
CStringsql;

try
{
sql.Format("select* from Table where Name='瞎洞李test' andEnable = 1");
if(((XXXApp*)AfxGetApp())->m_pRst->State)
((XXXApp*)AfxGetApp())->颤凳m_pRst->Close();
((XXXApp*)AfxGetApp())->m_pRst=((XXXApp *)AfxGetApp())->m_pConnection->Execute((_bstr_t)sql,NULL,adCmdText);
while(!((XXXApp*)AfxGetApp())->m_pRst->adoEOF)
{
var= ((XXXApp *)AfxGetApp())->m_pRst->GetCollect("Class"磨迟);
temp=VariantToCString(var);
this->m_ctrClass.AddString(temp);
var= ((XXXApp *)AfxGetApp())->m_pRst->GetCollect("Age");
this->age=var.intval();
((XXXApp*)AfxGetApp())->m_pRst->MoveNext();
}
if(((XXXApp*)AfxGetApp())->m_pRst->State)
((XXXApp*)AfxGetApp())->m_pRst->Close();
}
catch(_com_errore)
{
returnFALSE;
}

sql.Format("INSERTINTO Student (Name,Adress) VALUES ('%s','%s')", \
this->name,this->adress);

try
{
if(((XXXApp*)AfxGetApp())->m_pRst->State)
((XXXApp *)AfxGetApp())->m_pRst->Close();
((XXXApp*)AfxGetApp())->m_pConnection->Execute((_bstr_t)sql,NULL,adCmdText);
if(((XXXApp*)AfxGetApp())->m_pRst->State)
((XXXApp*)AfxGetApp())->m_pRst->Close();
}
catch(_com_errore)
{
MessageBox("录入Student表失败","提示",MB_ICONHAND);
returnFALSE;
}

returnTRUE;
}

Update和Delete以此类推,这里就不做详细介绍了。
此文章只是个人在实际项目中所总结的一点小小经验,代码不是非常的严谨,觉得有帮助的可以参考一下,觉得有问题的可以给我留言,便于我做出改善,大家相互学习。

⑹ 在MFC下操作数据库的SQL语句

Cstring strsql = "...";
m_command->CommandText = (_bsrt_t)strsql;

m_recordest = m_command->Execute(NULL,NULL,adCmdText);

⑺ MFC 向SQL数据库写入数据问题

在MFC中与SQL数据库相关联的主要是两个类:CDatabase类与CRecordeset类。

1.将SQL中的字段显示在Clistctrl空间的列名中

[cpp]viewplain
m_gl.Open(CRecordset::dynaset);//打开ODBC连接的数据库
shortnfilecount=m_gl.GetODBCFieldCount();//获取表中的字段数
CODBCFieldInfofieldinfo;//用于存储字段信息
for(intn=0;n<nfilecount;n++)
{
m_gl.GetODBCFieldInfo(n,fieldinfo);//返回某一字段索引的字段信息m_strName保存的是字段名
intnWidth=m_list.GetStringWidth(fieldinfo.m_strName)+15;//确定列头的显示长度
m_list.InsertColumn(n,fieldinfo.m_strName,LVCFMT_LEFT,nWidth);//在Clistctrl控件中插入列
}


CStringstrvalue;
m_gl.MoveFirst();
intncount=0;
while(!m_gl.IsEOF())
{

m_list.InsertItem(ncount,strvalue);
//for(shortj=0;j<nfilecount;j++)
//{
//m_gl.GetFieldValue(j,strvalue);//获取某个字段的信息
//m_list.SetItemText(ncount,j,strvalue);//在Clistctrl控件中写入数据
//}
CStringm_ID;
m_ID.Format("%d",m_gl.m_ID);
m_list.SetItemText(ncount,0,m_ID);
m_list.SetItemText(ncount,1,m_gl.column1);
m_list.SetItemText(ncount,2,m_gl.column2);
m_list.SetItemText(ncount,3,m_gl.column3);
m_list.SetItemText(ncount,4,m_gl.column4);
m_list.SetItemText(ncount,5,m_gl.column4);
m_gl.MoveNext();
ncount++;

}
m_gl.Close();
m_db.Close();

2.删除表中的某一行:

[cpp]viewplain
intnIdxingdb=nIdx1+1;
m_gl.Open(CRecordset::dynaset);//打开数据库
m_gl.SetAbsolutePosition(nIdxingdb);//设置数据库的记录位置
m_gl.Delete();//删除记录
m_gl.Close();

3.增加到记录中一行:

[cpp]viewplain
m_gl.AddNew();
m_gl.SetFieldNull(NULL,false);

m_gl.column1=r.Name;
m_gl.column5=r.Photo;
m_gl.column2=r.Depart;
m_gl.column3=r.IsIntern;
m_gl.column4=r.Phone;
m_gl.Update();
m_gl.Requery();

m_gl.MoveFirst();

⑻ MFC中怎么用SQL更新数据库

初始化引入相关的库+Connection对象的创建和数据库的连接
#import "c:\\Program Files\\Common Files\\System\\ADO\\msado15.dll" rename_namespace("ADOCG") rename("EOF","adoEOF") //rename("BOF","adoBOF")
using namespace ADOCG;
//... ...
_ConnectionPtr m_pConnection;
//... ...
if(!AfxOleInit())
{
AfxMessageBox("初始化OLE DLL失败!");
Return FALSE;
}

m_pConnection.CreateInstance("ADODB.Connection");
try
{
m_pConnection->ConnectionTimeout = 3;
//连接ACCESS2000
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:/Attendence/AttendenceDB.mdb","","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox(e.Description() + _T("\n数据库连接失败"));
}
更新记录:
strSql.Format(_T("UPDATE WorkUser SET MemberName = '%s', MemberPosition = '%s' WHERE MemberID = '%s' "),m_StringName, m_StringPosition, m_StringNumber);
try
{

(theApp.m_pConnection)->Execute(_bstr_t(strSql), 0, adCmdText);
}
catch(_com_error e)
{
MessageBox(e.Description());
return;
}

⑼ mfc 应用ado 连接 sql 数据库

教你个连接数据库的方法。首先新建一个txt文件,把他命名为aaa.udl然后双击它配置数据库的连接。配置好连接成功后,将该文件放置程序文件夹内。连接数据库时将你的_bstr_t
strConnect
=
"Provider
=
SQLOLEDB.1;Password=111;Persist
Security
Info=True
;User
Id=root;
Initial
Catalog=test;
Data
Source=localhost;";
这一句改为: _bstr_t
strConnect
="File
Name=EPXLDT.udl";然后再连接试试。 如果还不行,把你的邮箱发给我,我给你发个连接数据库的类。挺好用的

⑽ MFC编程 执行SQL数据库语句问题

把这句改一下,格式不对!变量应该有单引号括起来!
"insert into 生产计划表 values
('"+qj2+"', '"+qj3+"', '"+qj4+"', '"+qj5+"', '"+qj6+"', '"+qj7+"',
'"+qj8+"', '"+qj9+"', '"+qj10+"', '"+qj11+"', '"+qj12+"')";

对于这种sql语句,可以用输出函数输出一下,来检查sql语句是否错误!