【问题标题】:How to call a method with List< string> parameter如何使用 List<string> 参数调用方法
【发布时间】:2023-03-06 18:26:01
【问题描述】:

我只是尝试作为初学者学习 C#(而且我的英语很差,sry) 我想读一个 mySQL 数据库 我在

中找到了一篇非常好的文章

http://www.codeproject.com/Articles/43438/Connect-C-to-MySQL

例如,我成功调用了方法计数

        DBConnect dbx = new DBConnect();
        int i2 = dbx.Count();

但是问题:如何调用方法Select 它由以下定义:

        public List< string >[] Select()

如何在我的主程序中声明一个List并调用方法?

我试过类似的代码

List<Daten> liste = new List<Daten>();
liste = dbx.Select()[myDaten];

为简单起见,假设在“日期”中我只有 2 个变量“名称”作为字符串,“年龄”作为整数

【问题讨论】:

  • 列表 list = Select ();或者您可以使用关键字 var 代替特定类型 var list = Select ();
  • 我用“var list”解决了这个问题。谢谢

标签: c# mysql list select methods


【解决方案1】:

文章中提到了这个方法:

public List< string >[] Select()

只是 DBConnect 类的一部分。因此,要获取数据,您必须调用 dbx.Select();仅获取数据。如果要将数据转换为 Daten 类,则必须更新 Select 方法的代码以返回 Daten 类实例的集合而不是字符串集合。 代码大概是这样的:

public IEnumerable<Daten> Select()
{
    string query = "SELECT * FROM tableinfo";

    //Create a list to store the result
    List<Daten>list = new List<Daten>();

    //Open connection
    if (this.OpenConnection() == true)
    {
        //Create Command
        MySqlCommand cmd = new MySqlCommand(query, connection);
        //Create a data reader and Execute the command
        MySqlDataReader dataReader = cmd.ExecuteReader();

        //Read the data and store them in the list
        while (dataReader.Read())
        {
            var id = int.Parse(dataReader["id"]);
            var name = dataReader["name"];
            var age = int.Parse(dataReader["age"]);

            var daten = new Daten { Id = id, Age = age, Name = name };
            list.Add(daten)
        }

        //close Data Reader
        dataReader.Close();

        //close Connection
        this.CloseConnection();

        //return list to be displayed
        return list;
    }
    else
    {
        return list;
    }
}

在这里,我假设 Daten 类如下所示:

public class Daten {
    public int Id {get;set;}
    public int Age {get;set;}
    public string Name {get;set;}
}

【讨论】:

  • 我通过 Valentin 和 var list 的评论解决了这个问题。在您的考试中,我没有得到声明“var daten = new Daten { Id = id, Age = age, Name = name };”正在运行。
  • 我用 Valentin 的评论解决了这个问题。在您的示例中,我没有得到语句“var daten = new Daten { Id = id, Age = age, Name = name };”跑步。不过,我稍后会检查它,也许对于未来的事情,这可能是更好的方法!谢谢(顺便说一句,我如何编辑我的问题以标记 ist [已解决]
  • var daten = new Daten { Id = id, Age = age, Name = name };要运行此语句,您必须像我在较低代码块中定义的那样定义类 Daten。另外我忘了为来自 DB 的数据添加类型转换,更新了代码,请记住,只有当 ID 和 Age 在 DB 中不可为空时,它才会起作用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-06
  • 1970-01-01
  • 1970-01-01
  • 2013-08-20
  • 1970-01-01
  • 2015-12-05
  • 1970-01-01
相关资源
最近更新 更多