将多个变量保存到类
本文关键字:保存 变量 | 更新日期: 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);