MFC 连接Sql Server,初学者小白过路好心人~
MFC 连接Sql Server,菜鸟小白求助过路好心人~~
姑娘计算机大白,苦苦连不上数据库。。。
我的数据库(sql server2005 express, windows身份验证登录)中是一个student表,有username和password字段。想在MFC中实现用户登录功能。根据网上的资料加了以下一点儿代码。
Stdfx.h
#import "c:\program files\common files\system\ado\msado15.dll" \
no_namespace \
rename ("EOF", "adoEOF")
头文件定义了指针
_ConnectionPtr m_pConnection;
CPP中初始化COM环境(其实不了解这个什么环境.....orz),然后创建数据库连接。
AfxOleInit();
m_pConnection.CreateInstance(__uuidof(Connection));
try
{
// 打开本地数据库
m_pConnection->Open("Provider=MSDASQL.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=enter","","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox("数据库连接失败!");
return FALSE;
}
然后就运行就始终出现“数据库连接失败!”....... 是我少写了哪段代码吗?还是数据源表示方式错的?恳请好心过路人不吝赐教~~~
------解决方案--------------------
单步调试看看在哪句话中断,Open((_bstr_t)strConn,) 用这个_bstr_t转一下类型试试
------解决方案--------------------
HRESULT hrConnection = m_pConnection.CreateInstance(__uuidof(Connection));
if(SUCCEEDED(hrConnection))//先判断是否m_pConnection.CreateInstance成功
{
m_pConnection->Open(...)
}
如果open失败需要在catch中看看具体是什么错误,下面文章中的catch可以抓到所有错误:
http://blog.****.net/bombzhang/article/details/7431624
------解决方案--------------------
建立一个用户,设置密码,然后再连接字符串中使用用户名和密码;ADO连接好像不支持 windows身份验证登录 ;
------解决方案--------------------
我感觉字符串不对吧
------解决方案--------------------
#import "c:\program files\common files\system\ado\msado15.dll" \
no_namespace \
rename ("EOF", "adoEOF")
这段代码的位置加对了吗?
AfxOleInit();放在initInstance()函数中。
------解决方案--------------------
数据库连接字符串错了。
Provider=SQLOLEDB.1;Password=修改成你的密码;Persist Security Info=True;User ID=sa;Initial Catalog=enter;Data Source=192.168.0.7(修改成你的数据库服务器的IP)
------解决方案--------------------
看看这篇文章
讲如何获取链接字符串的
http://wenku.baidu.com/view/a516901fc5da50e2524d7f47.html
姑娘计算机大白,苦苦连不上数据库。。。
我的数据库(sql server2005 express, windows身份验证登录)中是一个student表,有username和password字段。想在MFC中实现用户登录功能。根据网上的资料加了以下一点儿代码。
Stdfx.h
#import "c:\program files\common files\system\ado\msado15.dll" \
no_namespace \
rename ("EOF", "adoEOF")
头文件定义了指针
_ConnectionPtr m_pConnection;
CPP中初始化COM环境(其实不了解这个什么环境.....orz),然后创建数据库连接。
AfxOleInit();
m_pConnection.CreateInstance(__uuidof(Connection));
try
{
// 打开本地数据库
m_pConnection->Open("Provider=MSDASQL.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=enter","","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox("数据库连接失败!");
return FALSE;
}
然后就运行就始终出现“数据库连接失败!”....... 是我少写了哪段代码吗?还是数据源表示方式错的?恳请好心过路人不吝赐教~~~
------解决方案--------------------
单步调试看看在哪句话中断,Open((_bstr_t)strConn,) 用这个_bstr_t转一下类型试试
------解决方案--------------------
HRESULT hrConnection = m_pConnection.CreateInstance(__uuidof(Connection));
if(SUCCEEDED(hrConnection))//先判断是否m_pConnection.CreateInstance成功
{
m_pConnection->Open(...)
}
如果open失败需要在catch中看看具体是什么错误,下面文章中的catch可以抓到所有错误:
http://blog.****.net/bombzhang/article/details/7431624
------解决方案--------------------
建立一个用户,设置密码,然后再连接字符串中使用用户名和密码;ADO连接好像不支持 windows身份验证登录 ;
------解决方案--------------------
我感觉字符串不对吧
------解决方案--------------------
#import "c:\program files\common files\system\ado\msado15.dll" \
no_namespace \
rename ("EOF", "adoEOF")
这段代码的位置加对了吗?
AfxOleInit();放在initInstance()函数中。
------解决方案--------------------
数据库连接字符串错了。
Provider=SQLOLEDB.1;Password=修改成你的密码;Persist Security Info=True;User ID=sa;Initial Catalog=enter;Data Source=192.168.0.7(修改成你的数据库服务器的IP)
------解决方案--------------------
看看这篇文章
讲如何获取链接字符串的
http://wenku.baidu.com/view/a516901fc5da50e2524d7f47.html