C# 返回类型数组

C# 返回类型数组,c#,sql,arrays,C#,Sql,Arrays,大家好,我是C#编程新手,在C#函数中返回数组类型时遇到问题。从查询数据库返回的值(以下代码): 因此,我的问题是: 我想返回类型成为数组,你能给我建议吗 如何使用上述函数,并按返回值的索引调用。如果我将这样调用(fillTreeLesson是我将使用的函数名): treeOutline.Nodes[counter_node].Nodes.Add(fillTreeLesson(课程名称)) 感谢您的关注您可以使用以下列表轻松完成: public List<string> FillTr

大家好,我是C#编程新手,在C#函数中返回数组类型时遇到问题。从查询数据库返回的值(以下代码):

因此,我的问题是:

  • 我想返回类型成为数组,你能给我建议吗
  • 如何使用上述函数,并按返回值的索引调用。如果我将这样调用(fillTreeLesson是我将使用的函数名):

    treeOutline.Nodes[counter_node].Nodes.Add(fillTreeLesson(课程名称))


  • 感谢您的关注

    您可以使用以下列表轻松完成:

    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;
    }
    
    之后,您可以使用 foreach循环:

    您可以使用for循环(如果您想在某些情况下使用它们,最好是这样) 使用其索引值订购,或以后必须更改其值 上)


    for(int i=0;iIt)如果你能发布完整的方法,那真的会很有帮助-我们看不到方法或
    lesson\u name的声明
    。放弃第二个问题或单独发布。在帖子中以清晰的方式提问一个问题(我以前也违反过,所以没什么好担心的——把你的第二个问题改成新问题(以防你在这里找不到)好的@TalhaIrfan,谢谢你的建议,我将单独回答这个问题。@JonSkeet lesson_name在这些类中声明为全局的。我已经更新了更完整的方法。谢谢你的关注数组将从何而来,或者为什么
    lesson_name
    是一个实例变量。你还应该查看
    using
    语句,更好的异常处理,遵循.NET命名约定,并使用参数化SQL…@Emil请参见更新的答案
    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 = FillTreeLesson("CS-502");
    
    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]
    
    }