玉虚宫叶少保 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变量保存的是这个数组中已经有的数据的数量

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

    评论

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥15 绘制多分类任务的roc曲线时只画出了一类的roc,其它的auc显示为nan
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?