怎么样让数据库信息在VC 6.0上显示 5
小弟新手 恳求各位大哥帮忙 急急急...............息在VC 6.0上显 展开
CoInitialize(NULL);//初始化服务
_ConnectionPtr con(__uuidof(Connection));//定义用于连接的变量
_RecordsetPtr re(__uuidof(Recordset));//定义用于存放结果集的变量
con->ConnectionString = "Provider=SQLOLEDB.1;Password=/*你的2005数据库密码*/;Persist Security Info=True;User ID=sa;Initial Catalog=/*数据库名*/;Data Source=/*数据库系统名字*/";
try
{
try
{
con->Open("" , "" , "" , -1);//连接数据库
}
catch(...)//连接失败处理
{
MessageBox("……" , "错误!");
}
re = con->Execute("select * from student" , NULL , adCmdText);//用连接变量执行SQL语句,并将结果赋给结果集
while(!re->REEOF)//是否结束
{
CString str;
str.Format("%s " ,
(char *)(_bstr_t)re->GetCollect("数据表列名"));//得到列值
try
{
((CListBox *)GetDlgItem(IDC_LIST))->AddString(str);//将列值添加入列表控件里
}
catch(...)
{
MessageBox("……", "错误!");
}
re->MoveNext();//指向下一个节点
}
re->Close();//关闭结果集
con->Close();//亲闭连接通
}
catch(...)
{
MessageBox("……", "错误!");
}
con.Release();//释放连接变量
re.Release();//释放结果集
CoUninitialize();//关闭服务
以上是用于从数据表得到数据并显示于一个列表控件的代码。
可以看一下孙鑫的关于VC的教程第二十章,当时我也是看他的。
放置ADO,和DataGrid控件,通过设置控件的属性即可连接数据库,并显示的在dataGrid中。
以上,仅供初学学习连接数据库使用。最好还是自己写一个类,比较灵活。
祝顺利!
我毕业设计就是这个内容,不过我现在在外面 如果有时间今天晚上发给你 我做的东西在我的电脑上 我是用ado连的数据库
//数据库的封装
void ADOConn::OnInitADOConn()
{
::CoInitialize(NULL);
try{
m_pConnection.CreateInstance("ADODB.Connection");
_bstr_t strConnect="Provider=MSDASQL.1;Persist Security Info=False;Data Source=PersonnelManagementDS";
m_pConnection->Open(strConnect,"","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
}
bool ADOConn::ExecuteSQL(_bstr_t strSQL)
{
try{
if(m_pConnection==NULL)
OnInitADOConn();
m_pConnection->Execute(strSQL,NULL,adCmdText);
return true;
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
return false;
}
}
void ADOConn::ExitConnect()
{
if(m_pRecordset!=NULL)
m_pRecordset->Close();
m_pConnection->Close();
::CoUninitialize();
}
CString ADOConn::GetFieldValue(CString Field)
{
CString sValue;
_variant_t value;
value=m_pRecordset->GetCollect((_bstr_t)Field);
if(value.vt==VT_EMPTY ||value.vt==VT_NULL)
sValue="";
else
{
sValue=(char*)(_bstr_t)value;
sValue.TrimRight();
sValue.TrimLeft();
}
return sValue;
}
int ADOConn::GetRecordCount()
{
int nCount=0;
try{
m_pRecordset->MoveFirst();
}
catch(...)
{
return 0;
}
if(m_pRecordset->_EOF)
return 0;
while (!m_pRecordset->_EOF)
{
m_pRecordset->MoveNext();
nCount=nCount+1;
}
m_pRecordset->MoveFirst();
return nCount;
}
_RecordsetPtr& ADOConn::GetRecordset(_bstr_t strSQL)
{
try{
if(m_pConnection==NULL)
OnInitADOConn();
m_pRecordset.CreateInstance(_uuidof(Recordset));
m_pRecordset->Open(strSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
return m_pRecordset;
}
//显示数据,用listctrl控件
void DCommodityDlg::RefreshList()
{
m_list.DeleteAllItems();
CString strSQL;
strSQL.Format("select * from commodityinfo");
ado.GetRecordset((_bstr_t)strSQL);
int count=ado.GetRecordCount();
for(int i=0;i<count;i++)
{
CString temp;
temp=ado.GetFieldValue("commodity_id");
m_list.InsertItem(i,temp);
temp=ado.GetFieldValue("commodity_name");
m_list.SetItemText(i,1,temp);
temp=ado.GetFieldValue("commodity_place");
m_list.SetItemText(i,2,temp);
temp=ado.GetFieldValue("commodity_purchase");
m_list.SetItemText(i,3,temp);
temp=ado.GetFieldValue("commodity_sale");
m_list.SetItemText(i,4,temp);
ado.MoveNext();
}
}
void DCommodityDlg::ResetButton()
{
m_id.EnableWindow(false);
m_name.EnableWindow(false);
m_specification.EnableWindow(false);
m_public.EnableWindow(false);
m_unit.EnableWindow(false);
m_produce.EnableWindow(false);
m_purchase.EnableWindow(false);
m_sale.EnableWindow(false);
m_Edit.EnableWindow(true);
m_Add.EnableWindow(true);
m_Delete.EnableWindow(true);
m_Confirm.EnableWindow(false);
m_Cancel.EnableWindow(false);
}
BOOL DCommodityDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_list.InsertColumn(0,"产品ID");
m_list.InsertColumn(1,"产品名");
m_list.InsertColumn(2,"出版社");
m_list.InsertColumn(3,"进货价格");
m_list.InsertColumn(4,"销售价格");
RECT rectList;
m_list.GetWindowRect(&rectList);
int wid=rectList.right-rectList.left-4;
for(int i=0;i<5;i++)
m_list.SetColumnWidth(i,wid/5);
m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT);
RefreshList();
ResetButton();
return TRUE;
}
有不懂的在联系 这个是我做的毕业设计的内容