微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MFC sqlserver等操作

////////////////获得字段数

mStrsql = "SELECT * FROM T_Student";
m_pRecordset->Open(mStrsql,
m_pConnection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);
hr = m_pRecordset->get_Fields(&fields); //得到记录集的字段集和 
_variant_t vIndex = (long)0;
_variant_t vCount = m_pRecordset->GetCollect(vIndex);
count = vCount.lVal;

if (SUCCEEDED(hr))
fields->get_Count(&ColCount);//得到记录集的字段集合中的字段的总个数ColCount 就是几列
/////把数据库中字段名写进listcontrol
for (i = 0; i < ColCount; i++)//i一定要是long型的!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
{
fields->Item[i]->get_Name(&bstrColName); //得到记录集//中的字段名 
strColName = bstrColName;
nameField = strColName;
//m_listSerialCsvData.SetItemText(count,ColCount,nameField);    //AddString(nameField);m_listSerialCsvData.SetItemText(i,j,wstTmp.c_str());
m_listSerialCsvData.InsertColumn(i,nameField,LVCFMT_LEFT,80);//表头
}

/////获取记录数

mStrsql2 = "SELECT * FROM T_Student";
/*m_pRecordset->Execute(mStrsql2,
adCmdText);*/////上面已经打开了数据库,这里就只能执行了 不能多次开打 除非在关闭之后!
_variant_t RecordsAffected;
m_pRecordset = m_pConnection->Execute(mStrsql2,&RecordsAffected,adCmdText);
_variant_t vIndex2 = (long)0;
_variant_t vCount2 = m_pRecordset->GetCollect(vIndex2);
count2 = vCount2.lVal;

////////////////////////取出数据库数据放到listcontrol中;ColCount是字段数

CString strValue;
try
{
while (!m_pRecordset->adoEOF)
{
strValue = "";
m_listSerialCsvData.InsertItem(m_listSerialCsvData.GetItemCount(),strValue);
for (int i = 0; i < ColCount; i++)
{
_variant_t var = m_pRecordset->GetCollect(_variant_t((long)i));
if (var.vt != VT_NULL)
{
strValue = (LPCTSTR)_bstr_t(var);
m_listSerialCsvData.SetItemText(m_listSerialCsvData.GetItemCount()-1,i,strValue);


}
}
m_pRecordset->MoveNext();
}

}
catch (_com_error &e)
{
AfxMessageBox(e.Description());
}



//mStrsql2 = "SELECT * FROM T_Student";
///*m_pRecordset->Execute(mStrsql2,
// m_pConnection.GetInterfacePtr(),
// adOpenDynamic,
// adLockOptimistic,
// adCmdText);*/////上面已经打开了数据库,这里就只能执行了 不能多次开打 除非在关闭之后!
//_variant_t RecordsAffected;
//m_pRecordset = m_pConnection->Execute(mStrsql2,adCmdText);


//_variant_t vIndex = (long)0; //_variant_t vCount = m_pRecordset->GetCollect(vIndex); //count = vCount.lVal;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐