vc中怎么在控件列表中显示mysql的数据啊或者用datagrid显示mysql的数据

我用控件列表的时候出现了这样的问题: error C2228: left of '.SetItemText' must have class/struct/union type,求帮助
while(row = mysql_fetch_row(result))
{
str.Format("%s",row[0]);
m_List.InsertItem(i,str);
str.Format("%s",row[1]);
m_List.SetItemText(i,1,str);
str.Format("%s",row[2]);
m_List.SetItemText(i,2,str);
str.Format("%s",row[3]);
m_List.SetItemText(i,3,str);
str.Format("%s",row[4]);
m_List.SetItemText(i,4,str);
str.Format("%s",row[5]);
m_List.SetItemText(i,5,str);
//str.Format(_T("%s"),row[4]);
//m_List.SetItemText(i,4,str);
i++;
}

第1个回答  2016-03-29
1、 新建一对话框
在资源视图中新建一个对话框,将对话框调整到适当大小,双击对话框创建对话框类。
2、 往对话框上添加DataGrid控件
在VC6中点击 Project->add to project->components and controls。在弹出的对话框中双击Registered ActiveX Controls 在弹出的控件列表中选择Microsoft DataGrid Control 6.0(SP6)(OLEDB),点击insert,接下来的每一部都点确认按钮(ok按钮)。我们发现在工具箱中多了一个DataGrid控件的图标。

拖动该图标到对话框中,并且调整大小,设置属性为AllowAddNew、AllowDelete、AllowUpdate、ColumnHeaders、Enabled。
在DataCrid上右击用ClassWizard给对话框添加一个DataGrid变量m_dataGrid。
3、 添加代码
在对话框头文件中添加如下代码#import "C://program files//common files//system//ado//msado15.dll" no_namespace rename ("EOF", "adoEOF")
在对话框头文件的对话框类中添加如下代码
_ConnectionPtr pConnection;//数据库连接指针
_RecordsetPtr m_pRecordSet;//数据集指针

重载对话框OnInitDialog()函数,在其中添加如下代码
CoInitialize(NULL); //初始化Com组件pConnection.CreateInstance(__uuidof(Connection)); //Connection用于与数据库服务器的链接
CString conStr; //数据库连接字符串
conStr.Format(_T("Driver=SQL SERVER;Database=%s;Server=%s; UID=%s;PWD=%s;"),"test","(local)","sa","sa");//注:此为ADO连接MS SQL数据库的一种方式,如果不是MS SQL数据库则连接方式不同
/******************连接数据库********************/
try
{
pConnection->ConnectionTimeout = 5; //设置连接时间
pConnection->Open(_bstr_t(conStr),"","",adModeUnknown); //连接SQL SERVER
}
catch(_com_error e) //捕捉异常
{
//AfxMessageBox(e.ErrorMessage());
return -5;
}
//创建数据集

m_pRecordSet.CreateInstance("ADODB.Recordset");
m_pRecordSet->CursorLocation= adUseClient;
CString cmdStr;
cmdStr="select pithology as 岩性,patno as 对应花纹 from Pithology_Patno";
try
{
m_pRecordSet->Open(_variant_t(cmdStr),_variant_t((IDispatch *)pConnection,true),adOpenKeyset,
adLockOptimistic, adCmdUnknown);
}
catch (CException e)
{
CString emsg;
e.GetErrorMessage((LPTSTR)&emsg,1);
AfxMessageBox(emsg);
return false;
}
m_dataGrid.SetRefDataSource(NULL);
m_dataGrid.SetRefDataSource((LPUNKNOWN)m_pRecordSet);
m_dataGrid.Refresh();
CoUninitialize();

现在DataGrid控件便具有添加、删除、修改数据的功能了。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网