将多个变量保存到类

本文关键字:保存 变量 | 更新日期: 2023-09-27 18:35:00

我对编程相当陌生,正试图将我的头缠绕在类上。我创建了一个如下所示的类:

    public class HistoricalEvents
    {
        public DateTime historicDate { get; set; }
        public string historicEvent { get; set; }
    }

我希望能够进入MySQL数据库,拉取多个事件,然后将这些事件显示在屏幕上。如何从MySQL创建多个历史事件,然后遍历它们以将它们显示在屏幕上?

将多个变量保存到类

首先,你需要一个表示单个事件的类,最好以单数命名(例如HistoricalEvent而不是HistoricalEvents(。

然后,您可以创建一个如下所示的List<HistoricalEvent>

public class HistoricalEvent 
{
    public DateTime historicDate { get; set; }
    public decimal historicEvent { get; set; }
}
List<HistoricalEvent> historicalEvents = new List<HistoricalEvent>();
historicalEvents.Add(new HistoricalEvent());
// ... etc etc ...

获得列表后,您可以像这样迭代它:

foreach (HistoricalEvent historicalEvent in historicalEvents)
{
    // "historicalEvent" contains the current HistoricalEvent :)
}

从 MySQL 数据库创建对象要复杂得多。 如果你想跳进去,试试这个教程(由Microsoft提供(,也许可以研究linq to objects,但我建议先更熟悉C#:)

编辑:

这听起来有点简洁,所以这里有一个类似的例子:

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
List<Person> people = new List<Person>();
people.Add(new Person()
{
    Name = "Dave",
    Age = 43
});
people.Add(new Person()
{
    Name = "Wendy",
    Age = 39
});
foreach (Person person in People)
{
    Console.WriteLine(person.Name) // "Dave", then "Wendy"
}

这使用连接器/网络 ADO.Net 提供程序:

var list = new List<HistoricalEvent>();
using (var cn = new MySqlConnection())
{
    cn.Open();
    var sql = "SELECT Date, Event FROM HistoricalEvents";
    using(var cm = new MySqlCommand(sql, cn))
    using(var dr = cm.ExecuteReader())
    {
        while (dr.Read)
            list.Add(new HistoricalEvent
            {
                historicDate = dr.GetDate(0), 
                historicEvent= dr.GetString(1)
             });
    }
}
foreach (var item in list)
    Console.WriteLine("{0}: {1}",item.historicDate,item.historicEvent);