как показать таблицу базы данных в wxListCtrl - PullRequest
0 голосов
/ 11 февраля 2011

Я только начинающий, и я использую 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"));

с помощью этого мы можем получить Индия U.p 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.

1 Ответ

0 голосов
/ 24 февраля 2011
                    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 (событие)) {

Close(true);

}

...