从字符串或数组手动填充 C# 中的数据集或数据表

Vig*_*ian -1 c# asp.net dataset

我想用数据集中的数据编写业务逻辑。

数据将采用以下格式

AssociateId Action Time

1          Login     12/12/2012 20:33
2          Login     12/13/2012 20:33
1          Login     12/14/2012 20:33
2          Game page 12/15/2012 20:33
1          Home page 12/16/2012 20:33
1          Map       12/17/2012 20:33
Run Code Online (Sandbox Code Playgroud)

我想将其转换为数据集,我不想进行数据库调用并从那里填充它。

我将它分配给一个字符串,并通过使用空格分割将其转换为数组。如何将该数组或该字符串作为一个整体转换为数据集或数据表?

Dav*_*vid 5

您可以在内存中创建一个DataTable并将其添加到任何DataSet. 就像是:

var myTable = new DataTable();
myTable.Columns.Add(new DataColumn("AssociateId"));
myTable.Columns.Add(new DataColumn("Action"));
myTable.Columns.Add(new DataColumn("Time"));

var row = myTable.NewRow();
row["AssociateId"] = 1;
row["Action"] = "Login";
row["Time"] = new DateTime(2012, 12, 12, 20, 33, 0);

myTable.Rows.Add(row);
Run Code Online (Sandbox Code Playgroud)

但它真的需要是一个DataTable吗?创建自定义对象似乎是一种将数据保存在内存中的更干净、更健壮的方法。就像这样简单的事情:

class MyClass
{
    public int AssociateID { get; set; }
    public string Action { get; set; }
    public DateTime Time { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后您可以创建它们的列表:

var myList = new List<MyClass>();
myList.Add(new MyClass
{
    AssociateID = 1,
    Action = "Login",
    Time = new DateTime(2012, 12, 12, 20, 33, 0)
});
Run Code Online (Sandbox Code Playgroud)