2012-04-11 6 views
1

У меня есть база данных MS Access с таблицей с несколькими столбцами. Когда я нажимаю кнопку, я хочу взять строки строковых данных из одного столбца базы данных и отобразить их в расширенном текстовом поле. Я создал следующий код:Как вы отображаете данные из базы данных в текстовое поле

public static string DisplayListOfTeams() 
    { 
     //create a data table object to hold data retrieved from DB 
     DataSet ds = new DataSet(); 

     //set SQL query to string variable 
     String sqlQuery = "SELECT * FROM Team"; 

     //instantiate new OleDbDataAdapter object 
     OleDbDataAdapter adpTeams = new OleDbDataAdapter(sqlQuery, aConnection); 

     //add data in DB to the dataset object/table 
     adpTeams.Fill(ds, "TeamTable");    

     string myValue; 

     if (ds.Tables["TeamTable"].Rows.Count > 0) 
     { 
      //You must cast the value because it is an object 
      myValue = (string)ds.Tables["TeamTable"].Rows[0][0]; 
     } 
     else 
     { 
      myValue = "No Data found"; 
     } 
     return myValue; 
    } 

richTextBox1.Text = TeamsDA.DisplayListOfTeams(); 

я получаю «Не удается привести объект типа„System.Int32“к типу„System.String“» ошибка в следующей строке:

myValue = (string)ds.Tables["TeamTable"].Rows[0][0]; 

Я не уверен, что я делаю неправильно или как делать то, что я пытаюсь сделать.

+1

Тип 'ds.Tables [" TeamTable "]. Строки [0] [0]' is int, поэтому вы не можете отличить строку. Вы можете вызвать '.ToString()' хотя ... – digEmAll

+0

Каково значение ds.Tables ["TeamTable"]. Строки [0] [0]? – Prescott

+1

вы забыли пометить это как msaccess, чтобы он заблокировался на моей странице. –

ответ

3

Один (два?) Слово (а): ToString

+0

Идентификатор типа идентификатора типа OfSport и строки состоят из баскетбола, бейсбола, футбола, футбола, плавания и дайвинга. Я пытаюсь показать строки в текстовом поле. Я попытался: myValue = "ds.Tables [" TeamTable "]. ToString();" но он просто отображает «TeamTable» –

+1

ToString возвращает строку, поэтому вам не нужно ее бросать. Но в вашем образце кода вы выбрали 'ds.Tables [" TeamTable "]. Строки [0] [0]', а не 'ds.Tables [" TeamTable "]'. Поэтому попробуйте 'ds.Tables [" TeamTable "]. Строки [0] [0] .ToString()'. Когда вы вызываете 'ds.Tables [" TeamTable "]' .ToString(), вы пытаетесь преобразовать всю таблицу в одну строку. Это может означать много вещей, но смысл, выбранный программистами класса DataTable, состоял в том, чтобы вернуть имя таблицы. – phoog

+0

@ phoog - ОК. Поэтому я совершенно неправ, и мне нужно пойти по-другому. ОК. Я сделаю еще несколько исследований и попытаюсь выяснить, как перечислять строки. Спасибо –

1

Не брось ... использование ToString() вместо этого.

Если вы произведете его, оно не преобразует возврат, оно будет пытаться отправить только как тип. Если вы используете ToString(), он, если возможно, преобразуется в правильный путь.

Если я ошибаюсь, пожалуйста, исправьте меня. Но я уверен, что ToString() будет работать.

Редактировать:

Исправлена ​​ошибка, зависящая от регистра. Спасибо digEmAll

+0

'ToString' (верхний регистр T),' toString' - java;) – digEmAll

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