Visual Studio 2010中如何把数据库中的数据使用C#显示在listbox中。
数据库的地址是F:\\abw\\data\\sheji.mdb";表的名称是sj_fz。数据项如下,现在我想把Filename,rkzs,gdrk,ldrk,lnrk。四...
数据库的地址是F:\\abw\\data\\sheji.mdb";
表的名称是sj_fz。
数据项如下,现在我想把File name, rkzs ,gdrk,ldrk,lnrk。四项数据放入listbox显示请问该如何使用c#语言完成。谢谢大家。 展开
表的名称是sj_fz。
数据项如下,现在我想把File name, rkzs ,gdrk,ldrk,lnrk。四项数据放入listbox显示请问该如何使用c#语言完成。谢谢大家。 展开
2个回答
展开全部
第一步:ADO数据库连接
#pragma warning(disable:4146)
#import "C:\Program Files\Common Files\System\ADO\msado15.dll" named_guids rename("EOF","adoEOF"), rename("BOF","adoBOF")
#pragma warning(default:4146)
第二步:显示数据
void Cpage::ShowInfomation(_variant_t sql)
{
int nCount=0;
BSTR bstrColName;
HRESULT hr;
ClearList();
row_a=0;
try
{
BeginWaitCursor(); //显示沙漏光标
if(m_pRecordset->State)
m_pRecordset->Close();
m_pRecordset->Open(sql,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
long lCol=m_pRecordset->Fields->GetCount(); //得到多少列
for(long i=0; i<lCol; i++) //显示第一行(ID,外径,长度,厚度)
{
hr=m_pRecordset->Fields->Item[i]->get_Name(&bstrColName);
if(SUCCEEDED(hr))
{
CString sColValue=(char *)(_bstr_t)bstrColName;
int nWidth=sColValue.GetLength();
m_list_control.InsertColumn(i,sColValue,LVCFMT_CENTER,nWidth*24);
}
}
m_pRecordset->MoveFirst();
for(long m=0;!m_pRecordset->adoEOF;m++,m_pRecordset->MoveNext())//按行显示数据
{
row_a++; col_a=0;
m_list_control.InsertItem(m,(char *)(_bstr_t)m_pRecordset->GetCollect(0L));
for(long n=1;n<lCol;n++) //按列显示数据
{
_variant_t vValue=m_pRecordset->GetCollect(n);
CString strValue;
if(vValue.vt==VT_NULL)
{
strValue="";
}
else{ //--------------------提取数据用于显示及其他的操作----------------------
strValue=(char *)(_bstr_t)vValue;
if(n>=2) //从第三列开始保存数据
{
col_a++;
a[row_a][col_a]=atof(strValue);
}
}
m_list_control.SetItemText(m,n,strValue);
}
nCount++;
}
EndWaitCursor();
}
catch(_com_error e)
{
// AfxMessageBox(e.ErrorMessage());
return ;
}
m_pRecordset->Close();
}
代码类似,参考着写!
#pragma warning(disable:4146)
#import "C:\Program Files\Common Files\System\ADO\msado15.dll" named_guids rename("EOF","adoEOF"), rename("BOF","adoBOF")
#pragma warning(default:4146)
第二步:显示数据
void Cpage::ShowInfomation(_variant_t sql)
{
int nCount=0;
BSTR bstrColName;
HRESULT hr;
ClearList();
row_a=0;
try
{
BeginWaitCursor(); //显示沙漏光标
if(m_pRecordset->State)
m_pRecordset->Close();
m_pRecordset->Open(sql,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
long lCol=m_pRecordset->Fields->GetCount(); //得到多少列
for(long i=0; i<lCol; i++) //显示第一行(ID,外径,长度,厚度)
{
hr=m_pRecordset->Fields->Item[i]->get_Name(&bstrColName);
if(SUCCEEDED(hr))
{
CString sColValue=(char *)(_bstr_t)bstrColName;
int nWidth=sColValue.GetLength();
m_list_control.InsertColumn(i,sColValue,LVCFMT_CENTER,nWidth*24);
}
}
m_pRecordset->MoveFirst();
for(long m=0;!m_pRecordset->adoEOF;m++,m_pRecordset->MoveNext())//按行显示数据
{
row_a++; col_a=0;
m_list_control.InsertItem(m,(char *)(_bstr_t)m_pRecordset->GetCollect(0L));
for(long n=1;n<lCol;n++) //按列显示数据
{
_variant_t vValue=m_pRecordset->GetCollect(n);
CString strValue;
if(vValue.vt==VT_NULL)
{
strValue="";
}
else{ //--------------------提取数据用于显示及其他的操作----------------------
strValue=(char *)(_bstr_t)vValue;
if(n>=2) //从第三列开始保存数据
{
col_a++;
a[row_a][col_a]=atof(strValue);
}
}
m_list_control.SetItemText(m,n,strValue);
}
nCount++;
}
EndWaitCursor();
}
catch(_com_error e)
{
// AfxMessageBox(e.ErrorMessage());
return ;
}
m_pRecordset->Close();
}
代码类似,参考着写!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询