在对话框点击"查看用户信息"按钮时触发下列代码,但是出现"未指定的错误".数据库是用的本地服务器,也打开了.新建的数据库,只是简单设置过表和视图,并且添加了一些内容.请教是怎么回事??
void CRecordsetDlg::OnButton1()
{
// 初始化OLE/COM库环境
::CoInitialize(NULL);
try
{
// 创建Connection对象
m_pConnection.CreateInstance("ADODB.Connection");
// 设置连接字符串,必须是BSTR型或者_bstr_t类型
_bstr_t strConnect = "Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=userman;Data Source=localhost;";
m_pConnection->Open(strConnect,"","",adModeUnknown);
// 判断连接状态是否为连接
if(m_pConnection->State == adStateOpen)
{
m_pRecordset.CreateInstance(__uuidof(Recordset));
_bstr_t vSQL;
vSQL = "SELECT * FROM Users";
m_pRecordset->Open(vSQL, m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
for(m_pRecordset->MoveFirst(); !m_pRecordset->adoEOF; m_pRecordset->MoveNext())
{
CString username, userpwd;
username = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("UserName");
userpwd = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("UserPwd");
CString msg;
msg.Format("用户名:%s;密码:%s", username, userpwd);
MessageBox(msg);
}
}
else
MessageBox("断开连接");
// 关闭连接
m_pConnection->Close();
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
AfxMessageBox(e.ErrorMessage());
}
}
void CRecordsetDlg::OnButton1()
{
// 初始化OLE/COM库环境
::CoInitialize(NULL);
try
{
// 创建Connection对象
m_pConnection.CreateInstance("ADODB.Connection");
// 设置连接字符串,必须是BSTR型或者_bstr_t类型
_bstr_t strConnect = "Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=userman;Data Source=localhost;";
m_pConnection->Open(strConnect,"","",adModeUnknown);
// 判断连接状态是否为连接
if(m_pConnection->State == adStateOpen)
{
m_pRecordset.CreateInstance(__uuidof(Recordset));
_bstr_t vSQL;
vSQL = "SELECT * FROM Users";
m_pRecordset->Open(vSQL, m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
for(m_pRecordset->MoveFirst(); !m_pRecordset->adoEOF; m_pRecordset->MoveNext())
{
CString username, userpwd;
username = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("UserName");
userpwd = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("UserPwd");
CString msg;
msg.Format("用户名:%s;密码:%s", username, userpwd);
MessageBox(msg);
}
}
else
MessageBox("断开连接");
// 关闭连接
m_pConnection->Close();
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
AfxMessageBox(e.ErrorMessage());
}
}
void CRecordsetDlg::OnButton1()
{
// 初始化OLE/COM库环境
::CoInitialize(NULL);
try
{
// 创建Connection对象
m_pConnection.CreateInstance("ADODB.Connection");
// 设置连接字符串,必须是BSTR型或者_bstr_t类型
_bstr_t strConnect = "Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=userman;Data Source=localhost;";
m_pConnection->Open(strConnect,"","",adModeUnknown);
// 判断连接状态是否为连接
if(m_pConnection->State == adStateOpen)
{
m_pRecordset.CreateInstance(__uuidof(Recordset));
_bstr_t vSQL;
vSQL = "SELECT * FROM Users";
m_pRecordset->Open(vSQL, m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
for(m_pRecordset->MoveFirst(); !m_pRecordset->adoEOF; m_pRecordset->MoveNext())
{
CString username, userpwd;
username = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("UserName");
userpwd = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("UserPwd");
CString msg;
msg.Format("用户名:%s;密码:%s", username, userpwd);
MessageBox(msg);
}
}
else
MessageBox("断开连接");
// 关闭连接
m_pConnection->Close();
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
AfxMessageBox(e.ErrorMessage());
}
}
void CRecordsetDlg::OnButton1()
{
// 初始化OLE/COM库环境
::CoInitialize(NULL);
try
{
// 创建Connection对象
m_pConnection.CreateInstance("ADODB.Connection");
// 设置连接字符串,必须是BSTR型或者_bstr_t类型
_bstr_t strConnect = "Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=userman;Data Source=localhost;";
m_pConnection->Open(strConnect,"","",adModeUnknown);
// 判断连接状态是否为连接
if(m_pConnection->State == adStateOpen)
{
m_pRecordset.CreateInstance(__uuidof(Recordset));
_bstr_t vSQL;
vSQL = "SELECT * FROM Users";
m_pRecordset->Open(vSQL, m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
for(m_pRecordset->MoveFirst(); !m_pRecordset->adoEOF; m_pRecordset->MoveNext())
{
CString username, userpwd;
username = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("UserName");
userpwd = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("UserPwd");
CString msg;
msg.Format("用户名:%s;密码:%s", username, userpwd);
MessageBox(msg);
}
}
else
MessageBox("断开连接");
// 关闭连接
m_pConnection->Close();
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
AfxMessageBox(e.ErrorMessage());
}
}
解决方案 »
- 用过Visual Assist的来看看
- 关于CCoolBar的问题
- 有关MFC开发界面程序的自动关闭的怪问题
- 如何把 程序a 作为 程序b 的线程而创建,不行的话,把程序a的源代码包括资源 拷贝到程序b中,通过AfxBeginThread(CWinAppForA..)行不?
- 如何将一个BMP图片以十六进制形式读入一个字符数组中? 请帮助(加40分帖)
- 请问:如何让 edit box 里的字串总显示总显示最新一屏
- vc使用的问题。
- ==求教!== GetModuleFileNameExe在98下用什么函数代替
- 很困惑!
- MFC ShellExecuteEx 不能调用 msi文件
- 图像处理软件小程序
- 这种图像应该如何显示?
后面的消息无法跳出.
断点处进入调试,出现:CXX0030:ERROR:Expression cannot be evaluated.
请问这是怎么回事?
bstr_t strConnect = "Provider=SQLOLEDB;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=userman;Data Source=localhost;";
简单的方法:用个ADODC控件连接数据库,把其中的连接串拷出来。
我查了些资料,bstr_t strConnect = "Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=userman;Data Source=localhost;";用的是ADODB控件还是ADODC控件,或者都不是?
新手上路,不好意思 ^v^