2015-02-25 8 views
0
void AutoCompleteText() 
    { 
     textBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend; 
     textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource; 
     AutoCompleteStringCollection coll = new AutoCompleteStringCollection(); 

     string query = "select * from Book;"; 
     OracleConnection con = new OracleConnection(ConString); 
     OracleCommand cmd = new OracleCommand(query, con); 
     OracleDataReader myReader; 

     try 
     { 
      con.Open(); 
      myReader = cmd.ExecuteReader(); 

      while (myReader.Read()) 
      { 
       string sName = myReader.GetString("Title"); 
       coll.Add(sName); 
      } 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
     textBox1.AutoCompleteCustomSource = coll; 
    } 

В таблице книги у меня есть столбец с именем Title, я хочу предложить мне, когда я ищу в TextBox1, предположим, что я пишу в TextBox1, то это будет автоматически всплывает весь заголовок, начинающийся с A из базы данных Oracle.автозаполнения текстового поля из базы данных оракула

Но реализации кода я получил следующие ошибки:

Error-1: Лучший перегружен матч метод «System.Data.Common.DbDataReader.GetString (INT)» имеет некоторые недопустимые аргументы

Error-2: аргумент 1: не удается преобразовать из 'строка' до '' междунар

+0

Это говорит вам, что 'GetString()' метод ожидает integer в качестве аргумента. Вам нужно указать индекс столбца столбца «Заголовок», а не имя столбца. –

ответ

0

GetString принимает int в качестве аргумента. Вы пытаетесь передать string. Вы можете использовать GetOrdinal, чтобы получить порядковый номер столбца из указанного столбца:

while (myReader.Read()) 
{ 
    string sName = myReader.GetString(myReader.GetOrdinal("Title")); 
    coll.Add(sName); 
} 

С другой стороны, это должно работать, а также:

string sName = (string) myReader["Title"]; 
Смежные вопросы