2014-09-25 3 views
-4
void Fillcombo() 
    { 
     OleDbConnection cn = new OleDbConnection("Provider = Microsoft.ACE.OLEDB.12.0;Data Source=Library.accdb"); 
     OleDbCommand cmd = new OleDbCommand(@"SELECT * FROM Books", cn); 
     cmd.Connection = cn; 

     OleDbDataReader dr; 
     try 
     { 
      cn.Open(); 
      dr = cmd.ExecuteReader(); 
      while (dr.Read()) 
      { 
       string b = dr.GetString("book");//This is the line where im getting an error 
       cboProgramming.Items.Add(b); 
      } 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show("f"); 
     } 
    } 
+0

Добро пожаловать в StackOverflow, прочитайте: https://stackoverflow.com/help/how-to-ask – flayn

ответ

1
// Summary: 
    //  Gets the value of the specified column as a string. 
    // 
    // Parameters: 
    // ordinal: 
    //  The zero-based column ordinal. 
    // 
    // Returns: 
    //  The value of the specified column. 
    // 
    // Exceptions: 
    // System.InvalidCastException: 
    //  The specified cast is not valid. 
    public override string GetString(int ordinal); 

Вы должны пройти инт.

1

Вы, вероятно, хотите что-то больше похоже:

string b = dr.GetString(dr.GetOrdinal("book")); 

В качестве метода GetString() (как GetInt32 и всех остальных) принять индекс столбца - который может быть возвращен с GetOrdinal метод

+0

+1 Это самый полный ответ. – DGibbs

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