RT。
已经成功实现了在控件上按一下鼠标就能调用指定的数据库。
但是对于调用的数据库中的特定的表如何在listbox上逐行显示还是不知道怎么做。。。
其实已经查了博客园和CSDN等等了,但是没有讲的很清楚的。
唯一一个博客园给了代码,按照他的方法调试了下发现没声明两个变量(不知道啥意思啊)
博客园提供的代码经过我改进后如下,如果有人能看懂,希望能指出问题:
(不知道ItemName和nCount分别代表什么,没有声明啊)
void CthirdstepDlg::OnBnClickedRealresearch() //按钮button的函数
{
// TODO: 在此添加控件通知处理程序代码
//初始化数据库对象
pConn = mysql_init(NULL);
//localhost:服务器地址,可以直接填入IP;root:账号;
//123:密码;test:数据库名;3306:网络端口
if (!mysql_real_connect(pConn, "localhost", "root",
"wtk123", "jeesite", 3306, NULL, 0))
{
AfxMessageBox(_T("数据库连接失败!"));
return;
}
else//连接成功则继续访问数据库,之后的相关操作代码基本是放在这里面的
{
AfxMessageBox(_T("数据库连接成功!"));
UpdateData(true);
//设置数据库字符格式,解决中文乱码问题
mysql_query(pConn, "set names 'gb2312'");
int t;
// 执行 sql 语句
char research_query[200]={0};
CString choose_name;
m_researchname.GetWindowText(choose_name); //获取输入静态文本框的字符串
strcpy(research_query,select_head);
strcat(research_query,"zd_resourse");
strcat(research_query," where name like '%");
strcat(research_query,choose_name);
strcat(research_query,"%'");
strcat(research_query,"");
t = mysql_query(pConn,research_query);
res = mysql_store_result(pConn);
while (res!=NULL)
{
if (NULL!=(row=mysql_fetch_row(res)))
{
if (row[0]!=NULL)
{
ItemName[nCount++]=row[0];//不知道ItemName和nCount分别代表什么,没有声明啊
m_Filelist.AddString(row[0]);
}
}
else
{
break;
}
}
// while(row = mysql_fetch_row(res))
// {
// printf("%s %s\n",row[1],row[2]);
// }
mysql_free_result(res);
mysql_close(pConn);
}
}
UpdateData(false);
mysql_close(pConn);//关闭Mysql连接
}
我的大致思路就是先创建一个空表,然后用for循环从i=0开始,逐行调用AddString函数来显示,然而具体怎么操作就不知道了——希望懂的人能贴一下代码,感激不尽!!!