2013-03-10 2 views
0

Привет, я пытаюсь получить данные из базы данных Ms Access в VC++. Поскольку я новичок в VC++, пожалуйста, помогите мне.Извлечение данных MsAccess в ComboBox в форме VC++ Приложение

Вот код, который я написал до сих пор.

System::Data::DataSet^ ds=gcnew System::Data::DataSet(); 

     OleDbConnection^con=gcnew OleDbConnection("Provider= Microsoft.ACE.OLEDB.12.0;Data source=dbmc.accdb; Persist Security Info=True"); 
     OleDbCommand^ com =gcnew OleDbCommand(); 
     OleDbDataReader^ myReader; 
     com->CommandText ="SELECT name FROM Table1"; 
     com->Connection = con; 
     con->Open(); 
     try 
     { 
      myReader=com->ExecuteReader(); 
      while(myReader->Read()) 
      { 
       String^ vName = myReader->GetString('name'); 
       comboBox1->Items->Add(vName); 
       myReader->Close(); 
      } 
     } 
     catch(Exception^ex) 
     { 
      MessageBox::Show(ex->Message); 
     } 

Когда я запускаю эту программу я получаю сообщение об ошибке "Index Out of Bound".

ответ

0

Метод GetString() принимает целое число номера столбца в качестве параметра, а не имя столбца (см. here для полной документации).

Изменение линии

String^ vName = myReader->GetString('name');

в

String^ vName = myReader->GetString(0);

+0

Супер ... Он работает как шарм ... Спасибо SoupyC ... –

Смежные вопросы