mfc数据库

                                                         目录

概述 2

开始编写一个数据库应用程序: 2

建立一个数据库应用程序 2

对数据库的操作: 3

1.打开数据库: 3

2.查询: 3

3.更新数据库: 4

4.添加数据: 4

5.   UINT nOpenType = AFX_DB_USE_DEFAULT_TYPE, 

   LPCTSTR lpszSQL = NULL, 

   DWORD dwOptions = none  

);

nOpenType打开方式,包括以下方式:

CRecordset::dynaset

CRecordset::snapshot

CRecordset::dynamic

CRecordset::forwardOnly

lpszSQL,打开数据库的m_strFilter;

这个变量的作用体现在查找的时候。变量的值取m_pSet->Close();

m_pSet->Open();

while(m_pSet->IsEOF()){

*/

出查询结果

/

_pSet->MoveNext();

}

m_pSet->m_ strFilter = _T(“”);//void Close( )BOOL IsEOF( ) const;

功能显然易见,不多少。

另外补充几个函数:

CRcordSet:: IsBOF();::MoveFirst();CRcordSet::Update() 函数,完成更新,这时候程序会自动将修改的结果写入数据库而不用你操心。当然,在更新数据库之前,你需要查找到你需要更新的元组(也称为记录),使用上面的查询方法。

4.

m_pSet->m_TestName  = TestName1;

m_pSet->m_TestCode = TestCode1;

m_pSet->m_TestOthers = Other Codes;

m_pSet->Update();

如你所见,代码又一次很荣幸的被“夹在”了AddNew()Update()之间。类似更新,首先告诉系统我要添加数据了(AddNew()),系统很无赖的给了你一块内存空间,让你可以对新的记录属性进行赋值,完了之后你又要告诉系统你已经搞定了,系统就不得不屁颠屁颠的去给你把数据写进数据库中(当然这之前会检测数据是否符合数据库的完整性约束)(Update())。添加操作到此完成。

5.

CCustomer rsCustSet(&m_dbCust);

rsCustSet.Open();

if(rsCustSet.IsEOF() || !rsCustSet.CanUpdate() ||

   !rsCustSet.CanTransact())

{

   return;

}

m_dbCust.BeginTrans();

// Perhaps scroll to a new record…

// Delete the current record

rsCustSet.Delete();

// Finished commands for this transaction

if(IDYES == AfxMessageBox(_T(“Commit transaction), MB_YESNO))

   m_dbCust.CommitTrans();

else // User changed mind

   m_dbCust.Rollback();

写的这么工整,肯定是出自 后面的内容了,废话少说,看例子:

Example[L Name], ContactFirstName”);

Got it/p>

程序中表名,数据库名亦然。

说了这么多其实都是

出于个人习惯,这里说“手动”连接数据库使用这两个类,当然你也可以使用void CLoginDlg::OnOK() 

{

UpdateData(TRUE);

 

CDaoDatabase cdb;

CDaoRecordset *m_pSet;

COleVariant cv;

//CString nullchar=”                    “;

/*调用CdaoDatabase::Open() */

cdb.Open(“Student_Score”,FALSE,TRUE,“ODBC=;”);

 /*

 初始化m_pSet变量,当然,这个必须要使用m_pSet = new CDaoRecordset(&cdb);

CString Sqlstr;

if(GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO2)==IDC_RADIO1)

{

/*

如果登录用户选择的为学生

*/

 /*

 这老长的一串其实只是在写打开的 /*

 正式的调用CdaoRecordset::Open() 函数,第一个参数表示打开方式,动态打开,第二个参数为打开数据库的if(!m_pSet->IsEOF()){//

m_pSet->Close();

cdb.Close();

CDialog::OnOK();

}

else

MessageBox(}

else{

Sqlstr = “select AdminName,Password from Admin where AdminName='” + m_UID + “‘ AND Password='” + m_UPW + “‘”;

m_pSet->Open(dbOpenDynaset,Sqlstr,NULL);

if(!m_pSet->IsEOF()){

//MessageBox(“isAdmin = true;

来源:_暮落_

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2012年10月26日
下一篇 2012年10月26日

相关推荐