+ -
当前位置:首页 → 问答吧 → MFC连接数据库问题

MFC连接数据库问题

时间:2011-11-29

来源:互联网

void CCSPTDlg::SetDbInfo() 
{
CString m_hostname;
CString m_dbname;
CString m_username;
CString m_pwd;
GetDlgItem(IDC_HOSTNAME)->GetWindowText(m_hostname);
GetDlgItem(IDC_DATABASE)->GetWindowText(m_dbname);
GetDlgItem(IDC_USERNAME)->GetWindowText(m_username);
GetDlgItem(IDC_PWD)->GetWindowText(m_pwd);

CDatabase m_db; 
CString dsn;

dsn.Format("Driver={SQL Server};Server=%s;DATABASE=%s;UID=%s;PWD=%s",m_hostname,m_dbname,m_username,m_pwd);
m_db.OpenEx( _T( "DSN=dsn" ),CDatabase::noOdbcDialog); 

这是连接数据库的代码,不知道有什么问题吗?编译可以通过,但是运行时提示“未发现数据源名称并且未指定默认驱动程序”,请问是什么原因?怎么解决?谢谢!

作者: Anitee   发布时间: 2011-11-29

m_db.OpenEx( _T( "DSN=dsn" ),CDatabase::noOdbcDialog);
也得Format吧,DSN=Driver={SQL Server};Server=%s;DATABASE=%s;UID=%s;PWD=%s

作者: ouyh12345   发布时间: 2011-11-29

引用 1 楼 ouyh12345 的回复:

m_db.OpenEx( _T( "DSN=dsn" ),CDatabase::noOdbcDialog);
也得Format吧,DSN=Driver={SQL Server};Server=%s;DATABASE=%s;UID=%s;PWD=%s



说清楚点,我这样得到的dsn不是已经format了吗?

作者: Anitee   发布时间: 2011-11-29

你传的是DSN=dsn这个字符串啊
dsn.Format("DSN=Driver={SQL Server};Server=%s;DATABASE=%s;UID=%s;PWD=%s",m_hostname,m_dbname,m_username,m_pwd);

作者: ouyh12345   发布时间: 2011-11-29

引用 3 楼 ouyh12345 的回复:

你传的是DSN=dsn这个字符串啊
dsn.Format("DSN=Driver={SQL Server};Server=%s;DATABASE=%s;UID=%s;PWD=%s",m_hostname,m_dbname,m_username,m_pwd);


按你说的试了下,还是一样的错误。。。

作者: Anitee   发布时间: 2011-11-29