创建了一个数据库,在MFC中连接并写入数据,运行时出现未经处理的异常
具体代码:HRESULThr;try{hr=m_pConnection.CreateInstance("ADODB.Connection");///创建Connectio...
具体代码:
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
if (SUCCEEDED(hr))
{
// hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source = test.mdb","","",adModeUnknown);///连接数据库
//上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97,
//需要改为:Provider=Microsoft.Jet.OLEDB.3.51;
_bstr_t strSQL = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Password=jww930517;Initial Catalog=串口;Data Source=JIANGWEIWEI";//连接SQL2005数据库,注意、Server=ZLQ-PC\\SQLEXPRESS泉水叮咚中是两个\\,即使你的数据库服务器只有一个\,也要再加上1个,否者会连接不成功
hr = m_pConnection->Open(strSQL, "sa", "jww930517", adModeUnknown);
}
}
catch (_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format(_T("连接数据库失败!\r\n错误信息:%s"), e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
variant_t RecordsAffected;
///执行SQL命令:CREATE TABLE创建表格users,users包含四个字段:整形ID,字符串username,整形old,日期型birthday
m_pConnection->Execute("CREATE TABLE users(ID INTEGER,username TEXT, old INTEGER, birthday DATETIME)",&RecordsAffected,adCmdText);
///往表格里面添加记录
m_pConnection->Execute("INSERT INTO users(ID,username,old,birthday) VALUES(1, 'Washington', 25, '1970/1/1')",&RecordsAffected,adCmdText);
m_pConnection->Execute("UPDATE users SET old = old+1", &RecordsAffected, adCmdText);
///执行SQL统计命令得到包含记录条数的记录集
m_pRecordset = m_pConnection->Execute("SELECT COUNT(*) FROM users",&RecordsAffected,adCmdText);
_variant_t vIndex = (long)0;
_variant_t vCount = m_pRecordset->GetCollect(vIndex);///取得第一个字段的值放入vCount变量
m_pRecordset->Close();///关闭记录集
CString message;
message.Format(_T("共有%d条记录"), vCount.lVal);
AfxMessageBox(message);///显示当前记录条数
其实这个代码也是弄的网上的,不知道对不对,如果有大神有现成的还望能发我一份参考 展开
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
if (SUCCEEDED(hr))
{
// hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source = test.mdb","","",adModeUnknown);///连接数据库
//上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97,
//需要改为:Provider=Microsoft.Jet.OLEDB.3.51;
_bstr_t strSQL = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Password=jww930517;Initial Catalog=串口;Data Source=JIANGWEIWEI";//连接SQL2005数据库,注意、Server=ZLQ-PC\\SQLEXPRESS泉水叮咚中是两个\\,即使你的数据库服务器只有一个\,也要再加上1个,否者会连接不成功
hr = m_pConnection->Open(strSQL, "sa", "jww930517", adModeUnknown);
}
}
catch (_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format(_T("连接数据库失败!\r\n错误信息:%s"), e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
variant_t RecordsAffected;
///执行SQL命令:CREATE TABLE创建表格users,users包含四个字段:整形ID,字符串username,整形old,日期型birthday
m_pConnection->Execute("CREATE TABLE users(ID INTEGER,username TEXT, old INTEGER, birthday DATETIME)",&RecordsAffected,adCmdText);
///往表格里面添加记录
m_pConnection->Execute("INSERT INTO users(ID,username,old,birthday) VALUES(1, 'Washington', 25, '1970/1/1')",&RecordsAffected,adCmdText);
m_pConnection->Execute("UPDATE users SET old = old+1", &RecordsAffected, adCmdText);
///执行SQL统计命令得到包含记录条数的记录集
m_pRecordset = m_pConnection->Execute("SELECT COUNT(*) FROM users",&RecordsAffected,adCmdText);
_variant_t vIndex = (long)0;
_variant_t vCount = m_pRecordset->GetCollect(vIndex);///取得第一个字段的值放入vCount变量
m_pRecordset->Close();///关闭记录集
CString message;
message.Format(_T("共有%d条记录"), vCount.lVal);
AfxMessageBox(message);///显示当前记录条数
其实这个代码也是弄的网上的,不知道对不对,如果有大神有现成的还望能发我一份参考 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询