MFC连接SQL2008(ODBC)

MFC连接SQL Server 2008的操作:

第一步:配置数据源

打开“控制面板”->“管理工具”->"数据源",在“用户DSN”面板中点击“添加”,选择“SQL Server”为驱动程序,在弹出的对话框中填写数据源名称、描述,选择当前运行的数据库实例 为服务器,点击“下一步”。

如果在连接数据库服务引擎时身份验证为Windows身份验证,则当前对话框采用默认设置;如果身份验证为SQL Server身份验证,那么在当前对话框中选择第二个验证方式,并填写登陆ID和密 码。点击“下一步”。

在弹出的对话框中选择“更改默认的数据库”复选框,并在其右边的下拉列表框中选择你要用的数据库,点击“下一步”。

在弹出的对话框中,采用默认的当前的系统设置,点击下一步。 点击“完成”后,会出现建立的数据源的设置信息,然后点击“确定”。数据源建立成功。

第二步:打开VS2008,新建MFC应用程序,基于对话框。

编写代码如下:

//连接数据库的函数

void MainInfo::GetConnectToSql()

{ CDatabase m_db;//定义数据库对象

CRecordset m_rs;//记录集,用于查询数据

try{

//连接数据库

m_db.OpenEx(_T("DSN=NewScore;Database=StudentScore;"),CDatabase::noOdbcDialog);//NewScore为数据源名称,StudentScore为数据库名。

m_rs.m_pDatabase = &m_db;//记录集与数据源绑定。如果此处不绑定,在后边查询时会弹出要你选择数据源的对话框。为避免麻烦,此处不要省略。

AfxMessageBox(_T("连接成功")); }

catch(_com_error e)//此处捕捉异常可参考其他的,这里只是随便举个例子

{ AfxMessageBox(_T("连接失败")); }

//查询数据库中的数据

CString strSql = _T("select * from Student_Score");//查询语句,Student_Score为数据表。

CString strResult;

//存放查询结果

try

{ //打开查询记录

m_rs.Open(AFX_DB_USE_DEFAULT_TYPE,strSql);//查阅MSDN Recordset的函数Open().

//逐条查询记录,显示记录的方法自己查阅。

while(!m_rs.IsEOF()){

m_rs.GetFieldValue(_T("StuName"),strResult);//得到数据

MessageBox(strResult);

m_rs.MoveNext(); }

int number = m_rs.GetRecordCount();//获取记录的数量

CString num;

num.Format(_T("%d"),number);

m_StuNum.SetWindowTextW(num);

}

catch(_com_error e)

{

MessageBox(_T("查询出错"));

}

//插入记录集

CString strnewSql = _T("use StudentScore insert into Student_Score(StuName,StuNum,StuClass,StuScore) values('李四','sy1107206','4','56') ");

try{ m_db.ExecuteSQL(strnewSql); }

catch(_com_error e) { AfxMessageBox(_T("shibai")); }

//删除一条记录

CString strdelete = _T("use StudentScore delete from Student_Score where StuName='李四'");

try{ m_db.ExecuteSQL(strdelete); }

catch(_com_error e) { AfxMessageBox(_T("shibai")); }

m_rs.Close();//关闭记录

m_db.Close();//关闭数据库

}

posted @ 2012-11-21 20:45  猪呆呆  阅读(2257)  评论(0编辑  收藏  举报