① 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怎么连接数据库
mfc一般用到的数据库是access ,SqlServer, sqlite
另外Oracle虽然不错但是跟Java比较合适,mfc稍微麻烦点
连接方式有ado,odbc,小型数据库的话我个人更推荐前者,因为odbc需要在一台电脑上进行配置,可移动性很差,而ado的话只要一个主程序一个数据库就可以拖到另一台电脑上直接用(仅限于access)
SQLite比较特殊,有自己的连接和操作方法,全部集成在一个头文件里,使用起来跟access SqlServer之类的有很大的不同,编程起来难度倒是相差不多,适合纯c的嵌入式开发
如果你们项目不大,数据库小,需要可移动性高的话 我推荐ado连access 我这有例子可以给你参考,另外ado连SqlServer我这也有可以给你,其他的目前还没有,所以帮不上了
③ MFC怎么与数据库连接,求详细步骤!!!!!急急急!!!!!!
比如在你的工程目录中建一个
dbf\vir.mdb
//access数据库,然后你需要做以下操作:
1.在stadafx.h里面添加#include
//新加入头文件,用于cdatabase类。
2.在stadafx.h最后的#endif上添加#import
"msado15.dll"
no_namespace
rename("eof","rseof")
这时,你要把msado15.dll拷到与dbf同级的目录,也就是工程目录里,当然你可以该路径
3.在你自己的工程里,比如myproc是你建的工程,添加代码
cmyporcapp::cmyprocapp(){
coinitialize(null);
sqlconfigdatasource(null,odbc_add_dsn,
"microsoft
access
driver
(*.mdb)",\
"dsn=myimage;dbq=dbf\\vir.mdb;defaultdir=dbf");
//注册本地数据库数据源
m_db.openex("dsn=myimage;;",cdatabase::noodbcdialog);//myimage是数据源名称
}
4.在前面的函数体之前创建全局变量cdatabase
m_db;
crecordset
m_rec(&m_db);
5.使用数据库{
cstring
strsql="select
*
from
virdb";
bstr
bstrsql=strsql.allocsysstring();
m_rec.open(crecordset::dynaset,strsql);
while(!m_rec.iseof())
{
//
使用数据库的代码,读出来的数据都是字符串型的
cstring
myvirable;
m_rec.getfieldvalue("字段名",myvirable);
//将某个字段的当前行的值读到myvirabl中
//
......
m_rec.movenext();
//将记录移到下一行
}
}
本程序是自动注册数据源的,当然可以手动注册数据源,关于如何注册数据源并不麻烦,叙述起来不太方面,你就参考其他的吧。不过建议不用手动注册数据源,这样你地程序移植性不好.
④ mfc中怎样从编辑框中将输入的数据导入到数据库中求大神指教!!!
updatedada()一下,然后将控件(比如textbox)中的数据获取到,insert到数据库中就可以了。不知道是不是你要的效果。
⑤ 求教MFC对话框中如何将数据写入数据库中
#include "stdafx.h"#ifdef _DEBUG#undef THIS_FILEstatic char THIS_FILE[]=__FILE__;#define new DEBUG_NEW#endif//////////////////////////////////////////////////////////////////////// Construction/Destruction//////////////////////////////////////////////////////////////////////ADOConn::ADOConn(){}ADOConn::~ADOConn(){}// 初始化—连接数据库void ADOConn::OnInitADOConn(){ // 初始化OLE/COM库环境 ::CoInitialize(NULL); try { // 创建Connection对象 m_pConnection.CreateInstance("ADODB.Connection"); // 设置连接字符串,必须是BSTR型或者_bstr_t类型 _bstr_t strConnect = "Provider=MSDASQL.1;Persist Security Info=False;User ID=***;Data Source=***;"; m_pConnection-Open(strConnect,"","",adModeUnknown); } // 捕捉异常 catch(_com_error e) { // 显示错误信息 AfxMessageBox(e.Description()); }}// 执行查询_RecordsetPtr ADOConn::GetRecordSet(_bstr_t bstrSQL){ try { // 连接数据库,如果Connection对象为空,则重新连接数据库 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(e.Description()); } // 返回记录集 return m_pRecordset;} // 执行SQL语句,Insert Update _variant_tBOOL ADOConn::ExecuteSQL(_bstr_t bstrSQL){// _variant_t RecordsAffected; try { // 是否已经连接数据库 if(m_pConnection == NULL) OnInitADOConn(); // Connection对象的Execute方法:(_bstr_t CommandText, // VARIANT * RecordsAffected, long Options ) // 其中CommandText是命令字串,通常是SQL命令。 // 参数RecordsAffected是操作完成后所影响的行数, // 参数Options表示CommandText的类型:adCmdText-文本命令;adCmdTable-表名 // adCmdProc-存储过程;adCmdUnknown-未知 m_pConnection-Execute(bstrSQL,NULL,adCmdText); return true; } catch(_com_error e) { AfxMessageBox(e.Description()); return false; }}void ADOConn::ExitConnect(){ // 关闭记录集和连接 if (m_pRecordset != NULL) m_pRecordset-Close(); m_pConnection-Close(); // 释放环境 ::CoUninitialize();}
⑥ 如何将MFC的数据存入access数据库并能从MFC中获取历史数据
存储数据简单,Access数据库的话就是用ADO,很简单。可以找找徐景周做的代码看看。
关键是绘图。
这个绘图的话,就使用简单的吧,MoveTo() LineTo().把这2个函数看看就会了。
再给你个画图的例子。
MFC控件上绘图。根据传入的数据绘制曲线。
⑦ MFC中如何获取编辑框的内容然后将其添加到数据库中。。
1、获取对话框上编辑框的内容有好几方法,
第一种直接调用成员函数:CString str; GetDlgItemText(编辑框控件ID号,str)
第二种也是调用成员函数:CString str; GetDlgItem(编辑框控件ID号)->GetWindowText(str);
第三种方法直接绑定编辑框控件的对象,DDX_Control(编辑框控件ID,m_obj),obj->GetWindowText(str),DDX_Text(编辑框控件ID,m_str);调用UpdateData()获取str,m_str的值即可
2、具体入库,是你的数据库处理方面了,
⑧ MFC怎么连接MYSQL数据库求详细。。
用ADO连接SQL数据库
步骤如下:
1,在头文件"StdAfx.h"中导入#import "C:/Program Files/Common Files/System/ado/msado15.dll" no_namespace rename("EOF","rsEOF"),记住把这句话放到endif的后面,不然会报错,这样处理好之后,编译后又一个警告,可以忽略
2,在对话框的OnInitDialog()函数中写上"::CoInitialize(NULL);::AfxOleInit(); ” 在主程序的初始化函数中,它就可以写一次
3,在对话框类的头文件中,声明如下变量:_ConnectionPtr m_pConnection;_RecordsetPtr pRst;
连接数据库的代码如下:
try
{
hr=m_pConnection.CreateInstance("ADODB.Connection");
if(SUCCEEDED(hr))
{
hr=m_pConnection->Open("Provider=数据库的驱动器名称;Integrated Security=SSPI;Persist Security Info=False;Data Source=数据库服务器名;Initial Catalog=连接的数据库名; User ID=登陆数据库的名称;Password=登陆数据库的密码;","","",adModeUnknown);
}
}
catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage());
}
”数据库的驱动器名称“在控制面板里,以大图标查看,可以看到一个"ODBC",双击打开,在”驱动程序“里面在最下面有两个”SQL Server"和“SQL Native Client"如果你是2000的SQL版本,就选”SQL Server"及“Provider=SQL Server"2005的"Provider=SQL Native Client"Data Source=? ,?的值可以是”localhost"也可以是你的数据库服务器的名称,连接数据库的时候可以看到,复制一下就可以了。
处理完之后就可以连接到你想要连接的数据库上了!你下次给点分把!!!
⑨ 求教MFC对话框中如何将数据写入数据库中
CString Filepath="Data.accdb";
int i=m_list.GetItemCount();//在列表的队尾添加,所以先获取行数
db.Open(Filepath);
Dbset.Open(AFX_DAO_USE_DEFAULT_TYPE,"SELECT * FROM DataTable",0);
Dbset.AddNew();//在记录集的队尾添加
Dbset.SetFieldValue("Name",_variant_t(m_name));
Dbset.SetFieldValue("Age",atol(m_age));//将CString格式转换为数据库规定的格式
Dbset.SetFieldValue("Extra",_variant_t(m_extra));
Dbset.Update();//一定要及时更新
Dbset.Close();
db.Close();//并关闭////////////////////////////
看这段代码,是把三个edit控件里的值写入Data.accdb数据库文件中。
⑩ 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();