2015-03-22 2 views
2

Привет, ребята, я новичок в программировании на C#, у меня проблема при возврате массива в C#. Возвращаемое значение его из базы данных запроса (ниже код):Тип возвращаемого массива

//determine list of lesson 
    private string fillTreeLesson(string course_id) 
    { 
     string connectionString = "server=localhost; database=moodle; user=root; password="; 

     using (MySqlConnection con = new MySqlConnection(connectionString)) 
     { 
      try 
      { 
       con.Open(); 
       MySqlCommand cmnd = con.CreateCommand(); 
       string sql = "select name from lesson where course like '%"+course_id+"%'"; 
       cmnd.CommandText = sql; 
       MySqlDataReader reader = cmnd.ExecuteReader(); 

       while (reader.Read()) 
       { 
        lesson_name = reader.GetString("name"); 

       } 

       con.Close(); 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show(ex.Message); 
      } 

     } 
     return lesson_name; 
    } 

Так что мои вопросы:

  1. Я хочу, чтобы вернуть тип стал массивом, вы можете дать мне совет?
  2. Как я могу использовать вышеуказанную функцию и вызывать по индексу возвращаемого значения. если я назову так (fillTreeLesson - это имя функции, которую я буду использовать):

    treeOutline.Nodes [counter_node] .Nodes.Add (fillTreeLesson (имя_курса));

спасибо за внимание

+2

Это действительно поможет, если вы могли бы выкладываете * complete * method - мы не можем видеть объявление метода или 'lesson_name'. –

+0

Отменить второй вопрос или разместить его отдельно. Задайте один вопрос в сообщении в хорошо проясненном виде (я также раньше нарушал, поэтому не о чем беспокоиться - переместите свой второй вопрос в качестве нового вопроса (в случае, если вы его уже не найдете) –

+1

ok @TalhaIrfan, спасибо за консультацию я буду отдельно этот вопрос. – Ilham

ответ

1

Вы можете сделать это легко, используя список, как:

public List<string> FillTreeLesson(string course_id) 
{ 

List<string> returnList = new List<string>(); 
    try 
    { 

     con.Open(); 
     MySqlCommand cmnd = con.CreateCommand();  
     string sql = "select name from lesson where course like '%"+course_id+"%'"; 
     cmnd.CommandText = sql; 
     MySqlDataReader reader = cmnd.ExecuteReader(); 

    while (reader.Read()) 
    { 
      lesson_name = reader.GetString("name"); 
      returnList.Add(lesson_name); 
    } 
    con.Close(); 
    } 

    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 

    return returnList; 
} 

Для того, чтобы вызвать эту функцию,

Во-первых, сделать Список содержит Ваш результат:

List<string> namesList = new List<string>(); 

Затем вызовите функцию и принять свою продукцию в namesList мы просто создано:

namesList = FillTreeLesson("CS-502"); 

После этого, вы можете легко получить эти строки один за другим, используя Foreach цикл:

foreach(string currentName in namesList) 
{ 
//Whatever you want to do with currentName 
} 

ИЛИ

Вы можете использовать цикл (Предпочтительнее, если вы хотите использовать их в некотором порядке, используя их значение индекса или должен изменить их значение позже на)

for(int i=0; i<namesList.Count; i++) 
{ 

//Your code. You should access given element as namesList[i] 

} 
+0

@Emil См. теперь Обновленный ответ –

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