玉虚宫叶少保 2019-03-12 21:10 采纳率: 25%
浏览 862
已结题

mfc调用mysql数据库时,如何在listbox上逐行显示调用的数据库的表中的内容呢?

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函数来显示,然而具体怎么操作就不知道了——希望懂的人能贴一下代码,感激不尽!!!

  • 写回答

2条回答 默认 最新

  • threenewbee 2019-03-12 23:53
    关注

    ItemName[nCount++]=row[0];//不知道ItemName和nCount分别代表什么,没有声明啊
    ItemName应该是一个字符串数组,nCount变量保存的是这个数组中已经有的数据的数量

    这段代码在添加列表框的同时还把数据放在了这个数组里

    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)