mfcsql資料庫
教你個連接資料庫的方法。首先新建一個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資料庫中的是否存在表A
法(一):
select * From master.dbo.sysdatabases where name='資料庫名'
法(二纖彎):
if db_id('資料庫名') is not null
drop database 。。。
go
create 。。。
SQL Server中判斷表對毀梁悶象是否渣擾存在:
select count(*) from sysobjects where id = object_id('資料庫名.Owner.表名')
『叄』 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資料庫,編輯框成員m_name,資料庫名link,表Table,列name,CDatabase db
1、先連接資料庫,並打答好凳開資料庫
2、將m_name編輯框內的內容清旅如果是字元串的話,直接插入如果不是,要轉換襪孫成字元串:
3、然後些SQl語句:insert into Table (name)values(m_name);
4、執行SQL語句,並更新資料庫即可。
大概過程是這樣的,具體的語句你應該可以寫出來的
『伍』 [轉載]MFC 如何連接資料庫(c++ 連接sql server )老
1.首先,你的機器上要保證有sql server,並能正確進入並創建資料庫,表等。2.建議把那個SA的密碼自己重新設定一下,設定方法:打開sql server 2005 SQL Server Management Studio,進去後在那個安全性--登錄名--右鍵點擊SA屬性,設置密碼,狀態裡面改成,授予 啟用。3.將ADO代碼庫引入到工程中,需要在stdafx.h或TEST.h(這個MFC項目的頭文件)中添加如下代碼,注意不同的操作系統在安裝時這個路徑可能不一樣,所以必須先在系統中找到msado15.dll文件的路徑:加入代碼:#import "C:Program FilesCommon FilesSystemadomsado15.dll" no_namespace rename("EOF","adoEOF")?(通過以上代碼就可以將ADO代碼庫引入到當前工程中)?4.在TEST工程中的TEST.h中加入如下代碼:(藍色為所加入的) class CSQL_TESTApp : public CWinApp{public:?_ConnectionPtr m_pAppConn;?//連接對象指針
CString m_AppConnString;?//連接字元串的聲明
bool m_bConnected; //連接標志 public:
CSQL_TESTApp();// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CSQL_TESTApp)public:virtual BOOL InitInstance();
。。。。};?5.在TEST工程的TEST.CPP文件中加入如下代碼:(藍色為所加入的)BOOL CSQL_TESTApp::InitInstance(){AfxEnableControlContainer();?HRESULT hRes;try{hRes=m_pAppConn.CreateInstance(_T("ADODB.Connection"));
m_pAppConn->Open(_bstr_t((LPCTSTR) m_AppConnString) , _T("") , _T("") , adModeUnknown);
if(SUCCEEDED(hRes)){m_bConnected = TRUE; //連接成功設置標志位}}catch(_com_error e){CString errormessage;
errormessage.FormatMessage(_T("連接資料庫失敗 %s"),e.ErrorMessage());
AfxMessageBox(errormessage); //顯示錯誤信息
return FALSE;?}
『陸』 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 中 用SQL查詢資料庫時無結果
strSQL.Format("SELECT * from BookInfo where %s = '%s'",name,temp); // BID 不需要 ' ' 進行包含
『捌』 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;
}
『玖』 SQL資料庫與MFC
:("insert into tab_data(gps_jd) values('"+str_gps_jd+"')");
『拾』 mfc如何遠程連接sql資料庫
1. 配置SQL Server外圍應用伺服器,開啟SQL Server 2005遠程連接功能:
「配置工具」->「SQL Server外圍應用配置器」-> 選擇「服務和連接的外圍應用配置器」->選擇Database Engine節點下的 「遠程連接」-> 選擇「本地連接和遠程連接」-> 選擇「同時使用TCP/IP和named pipes」-> 點擊確定,重新啟動
資料庫
服務。
2. 把登陸設置改為SQL Server 和 Windows 身份驗證模式:
打開SQL Server Management Studio管理器,點擊伺服器上面右鍵然後查看屬性,在安全性選項裡面對服務身份驗證選擇「SQL Server 和 Windows 身份驗證模式」。
3.修改SQL Server sa的密碼:
在SQL Server Management Studio管理器中,展開伺服器上的「安全性」->登陸名->在sa帳號上點右鍵屬性,這樣在「常規」的選擇頁中更改sa登陸帳號的密碼。注意SQL Server2005中,不允許密碼設置簡單,否則會通不過。然後在選擇頁的「狀態」的登錄修改為啟用。
4.設置SQL Server 的埠號
在SQL Server Configuration Manager管理器中,展開SQL Server 2005 Network Configuration項目 -> 單擊下面的 Protocols for 'dbname' -> 在右側的窗口中,右鍵單擊"TCP/IP"項,選擇"屬性" -> 打開"TCP/IP properties"窗口 - > 單擊"IP Address"選項卡 -> 將所有IP地址下面的 "TCP Port" 值設置成1433
5.確保開啟SQL Server服務
在SQL Server Configuration Manager管理器中, 選中SQL Server 2005 Services,在右側的窗口中啟動SQL Server ('YourInstance'),
6. 修改連接字元串,在字元串中加入SQl Server 服務的埠號.
strConnection.Format("driver={SQL Server};Server=xx.xx.xx.xx,1433;DATABASE=mydatabase;UID=name;PWD=pwd");
7.連接coder:
stdafx.h中引用:
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
8. 連接SQL SERVER伺服器,並連接資料庫
if(!AfxOleInit()) //這就是初始化COM庫
{
AfxMessageBox("資料庫初始化出錯!");
}
_ConnectionPtr pCn("ADODB.Connection");
pCn->Open((_bstr_t)"Driver=
{SQL Server};Server=127.0.0.1,1433;Database=carcom;UID=sa;PWD=abc123456","","",adModeUnknown);