2017-02-06 8 views
1

У меня есть 3 колонок fname = first name, mname = middle name и sname = surname так что я должен объединить их, чтобы заполнить единое поле со спискомобъединить 3 текста из базы данных для заполнения COMBOBOX

var query = "SELECT CONCAT(fname, ' ', mname, '', sname) AS FullName FROM database.table;"; 


    using(MySqlConnection myConn = new MySqlConnection(ConnectionClass.GetConnection())) 
using(MySqlCommand cmDB = new MySqlCommand(query, myConn)) 
{ 
    try 
    { 
     myConn.Open(); 
     using(MySqlDataReader myReader = cmDB.ExecuteReader()) 
     { 
      while(myReader.Read()) 
      { 
       string FName = myReader.GetString("FullName"); 
       cmbName.Items.Add(FName); 
      } 
     } 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 
    finally 
    { 
     myConn.Close(); 
    } 
} 

я пытался дозвониться FULLNAME в несколько раз, но он твердил он не может найти поле так, как я это делаю?

+0

string FName = (string) myReader [0]; – levent

ответ

3

FullName является псевдонимом, а не существующим зарегистрированным именем на вашем столе, поэтому sqldatareder не может его распознать. Попробуйте:

while(myReader.Read()) 
{ 
    string FName = myReader[0].ToString(); 
    cmbName.Items.Add(FName); 
} 
+0

это работа! благодаря! но можете ли вы объяснить, почему myReader [0]? – Enriko

+0

0 - индекс первого поля вашего запроса выбора (в том случае, если вы только поле selct 1, так, например, читатель [1] будет за пределами границ. – apomene

+0

спасибо, что вы действительно помогли мне – Enriko