Visual Studio 2010中如何把数据库中的数据使用C#显示在listbox中。
发布网友
发布时间:2022-04-27 01:05
我来回答
共2个回答
热心网友
时间:2022-04-15 07:31
第一步: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();
}
代码类似,参考着写!
热心网友
时间:2022-04-15 08:49
ListBox只能显示一行或者一列数据,是一维的,要想显示2维表,Winform下用DataGridView,
当然你的数据库得先放进实例中,配置数据库的连接字符串,在运用ADO.NET吧数据取出变成LISt,在绑定到数据表格中即可