如何在wxListCtrl中显示数据库表

发布于 2024-10-17 05:12:53 字数 1062 浏览 4 评论 0原文

我只是一个初学者,我使用 c++、wxwidget 和 mysql 我能够手动在 ListCtrl 中添加数据,但是当我在 ListCtrl 中填充数据时,转换显示一些问题 我知道如何在wxListCtrl中添加数据 前-

data_list_control->InsertColumn(0,wxT("Country"),2);
data_list_control->SetColumnWidth(0, 110);
data_list_control->InsertColumn(1,wxT("State"),2);
data_list_control->SetColumnWidth(1, 110);
data_list_control->InsertColumn(2,wxT("Zip"),2);
data_list_control->SetColumnWidth(2, 160);
long index = data_list_control->InsertItem(0, wxT("India"));
data_list_control->SetItem(index, 1, wxT("U.p"));
data_list_control->SetItem(index, 2, wxT("208005"));

借助这个我们可以得到 India Up 208005 在 wxListCtrl 中,但是当我用数据库填充它然后将 varchar 转换为 wxString 时产生问题,它显示了所有结果,但以垃圾形式 我正在做 mysql 连接,看看这个,

while((row=mysql_fetch_row(result)))
{

long index=data_list_control->InsertItem(i,wxT(row[i]));
i++;
for(j=1;j<num_fields;j++)
{

data_list_control->SetItem(index,j,wxT(row[j]));
}
}

如果数据库有三行,那么 listctrl 也显示三行,但值是意外的形式。 我只想知道如何将 varchar、int、long 或任何数据库数据类型转换为 wxString 格式。

i m just a beginner and i m using c++, wxwidget and mysql
manually i m capable to add data in ListCtrl but when i m filling data in ListCtrl , conversion showing some problem
i know how to add data in wxListCtrl
ex-

data_list_control->InsertColumn(0,wxT("Country"),2);
data_list_control->SetColumnWidth(0, 110);
data_list_control->InsertColumn(1,wxT("State"),2);
data_list_control->SetColumnWidth(1, 110);
data_list_control->InsertColumn(2,wxT("Zip"),2);
data_list_control->SetColumnWidth(2, 160);
long index = data_list_control->InsertItem(0, wxT("India"));
data_list_control->SetItem(index, 1, wxT("U.p"));
data_list_control->SetItem(index, 2, wxT("208005"));

with the help of this we can get
India U.p 208005 in wxListCtrl but when i am filling this with database then conversion of varchar to wxString creating a problem, it is showing all the result but in garbage form
i m doing mysql connectivity, look at this

while((row=mysql_fetch_row(result)))
{

long index=data_list_control->InsertItem(i,wxT(row[i]));
i++;
for(j=1;j<num_fields;j++)
{

data_list_control->SetItem(index,j,wxT(row[j]));
}
}

if database have three row then listctrl also showing three row but value are in unexpected form..
i only want to know how to convert varchar, int , long or any database data type to wxString format.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

终难遇 2024-10-24 05:12:53
                    List_Ctrl_Data obj1 ;

                         MYSQL_RES *database_table_data;
                         database_table_data=obj1.getdata();
                         if (database_table_data==NULL)
                         {
                             int decision = wxMessageBox(wxT("CAN NOT CONNECT TO DATABASE"), wxT("Message"),  wxOK | wxICON_INFORMATION, NULL,  -1, -1);
                         }
                         else if(mysql_num_rows(database_table_data)==0)
                         {
                             int decision = wxMessageBox(wxT("database has nothing to show"), wxT("Message"),  wxOK | wxICON_INFORMATION, NULL,  -1, -1);
                         }
                         else
                         {
                             int num_fields;
                             MYSQL_ROW row;
                             num_fields = mysql_num_fields(database_table_data);
                             long i=0;
                             int j;
                             while((row=mysql_fetch_row(database_table_data)))
                             {
                                 const char* chars1 = row[0];
                                 wxString mystring1(chars1, wxConvUTF8);
                                 long index=data_list_control->InsertItem(i,mystring1);
                                 i++;
                                 for(j=1;j<num_fields;j++)
                                 {
                                     const char* chars2=row[j];
                                     wxString mystring2(chars2,wxConvUTF8);
                                     data_list_control->SetItem(index,j,mystring2);
                                 }
                             }
                         }

}
无效登录::onbuttonclick(wxCommandEvent & WXUNUSED(事件))
{

Close(true);

}

                    List_Ctrl_Data obj1 ;

                         MYSQL_RES *database_table_data;
                         database_table_data=obj1.getdata();
                         if (database_table_data==NULL)
                         {
                             int decision = wxMessageBox(wxT("CAN NOT CONNECT TO DATABASE"), wxT("Message"),  wxOK | wxICON_INFORMATION, NULL,  -1, -1);
                         }
                         else if(mysql_num_rows(database_table_data)==0)
                         {
                             int decision = wxMessageBox(wxT("database has nothing to show"), wxT("Message"),  wxOK | wxICON_INFORMATION, NULL,  -1, -1);
                         }
                         else
                         {
                             int num_fields;
                             MYSQL_ROW row;
                             num_fields = mysql_num_fields(database_table_data);
                             long i=0;
                             int j;
                             while((row=mysql_fetch_row(database_table_data)))
                             {
                                 const char* chars1 = row[0];
                                 wxString mystring1(chars1, wxConvUTF8);
                                 long index=data_list_control->InsertItem(i,mystring1);
                                 i++;
                                 for(j=1;j<num_fields;j++)
                                 {
                                     const char* chars2=row[j];
                                     wxString mystring2(chars2,wxConvUTF8);
                                     data_list_control->SetItem(index,j,mystring2);
                                 }
                             }
                         }

}
void login::onbuttonclick(wxCommandEvent & WXUNUSED(event))
{

Close(true);

}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文