① 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();