在VS的MFC单文档工程中加入SQL数据库

https://blog.csdn.net/gmllyy/article/details/79703064

首先,在电脑上安装数据库;以SQL2008为例,安装完成后,打开界面如图所示,服务器名称为本机电脑名称,选择SQL Server身份验证,密码为电脑的开机密码;点击连接进入;

进入之后,在数据库这一选项里建立所需要的数据库,这里以Doctors为例;

这里设置了用户登陆界面密码,即在Doctors数据库的表这一选项里,添加所需要的表;表添加完成后,在所添加的表下面,添加列,即包括用户名和登陆密码;至此,数据库部分的简单设置就算完成了;

接下来建立基于MFC的单文档工程,工程建好后,在其中添加一个登陆对话框,对话框上添加用户名和登陆密码编辑框Edit Cotrol;分别为其添加变量m_Name;m_Password;变量的类型改为CString类;改为CString后会出现错误,

错误    1    error C2664: “void DDX_Control(CDataExchange *,int,CWnd &)”: 无法将参数 3 从“CString”转换为“CWnd &” ;

改错只需将DDX_Control改为DDX_Text即可;

连接数据库代码如下:

void CLog::OnBnClickedOk()  //OnBnClickedOk()函数为对话框上的确定按键;
{
// TODO:  在此添加控件通知处理程序代码
UpdateData(TRUE);
if (m_Name.IsEmpty() || m_Password.IsEmpty())   //判断数据是否为空
{
MessageBox("用户名或密码不能为空");
}
else
{
CoInitialize(NULL); //初始化COM组件
_ConnectionPtr pConn(__uuidof(Connection)); //实例化一个connection对象pConn,连接对象
_RecordsetPtr pRst(__uuidof(Recordset)); //实例化一个Recordset对象pRst,记录集对象
_CommandPtr pCmd(__uuidof(Command)); //实例化一个Command对象pCmd,命令对象
pConn->ConnectionString = "Provider = SQLOLEDB.1;Persist Security Info = False;User ID = sa ;Password = 123;Initial Catalog =Doctors;Data Source=DESKTOP-KKT1HG5";    //连接数据库
pConn->Open("", "", "", adConnectUnspecified);//打开数据库。此处参数均已在上述字符串声明,故可为空


//Data Source = DESKTOP - KKT1HG5; Initial Catalog = Doctors; Persist Security Info = True; User ID = sa
try
{
CString strSql;
strSql.Format("Select * from Doctor_logon where username='%s' and password='%s'", m_Name, m_Password);
pRst = pConn->Execute(_bstr_t(strSql), NULL, adCmdText);//将查询数据导入m_pRecordset数据容器
}
catch (_com_error e)                          //捕捉异常
{
AfxMessageBox(e.Description());
}
if (!pRst->adoEOF)                //查询
{
username = m_Name;
CLog::OnOK();        //进入主窗体并关闭登录框
}
else
{
MessageBox("用户名或密码不正确");
}
pRst->Close(); //关闭对象
pConn->Close();
pCmd.Release(); //释放对象
pRst.Release();
pConn.Release();
::CoUninitialize();


}

}

程序添加后,还需要对VS软件进行设置,具体设置方法可参考百度经验,链接如下:

https://jingyan.baidu.com/article/3ea51489e562bb52e61bbab0.html

至此,MFC与数据库的连接基本完成了,运行之后,输入用户名和密码,就可以进入单文档工程了。其中用户名和密码是在建立数据库表与列的时候,在列中直接添加上的

运行效果如下图所示:


 

猜你喜欢

转载自blog.csdn.net/active2489595970/article/details/88242107
今日推荐