从MySQL和C#处理返回数据的好方法是什么?

时间:2009-08-05 21:14:15

标签: c# mysql return-value

只是一个简单的问题,因为我发现的大多数博客和教程都是关于MySQL和C#的基本元素。

我使用的是MySQL ADO Connector。

我有一切设置,我可以从表中检索数据。但是我想创建一种方法来简化我的工作。所以我可以设置一个查询字符串(在方法或对象中)并调用一个函数,它会返回某种数据对象。

// For each row
while(reader.Read())
{
    // For each column
    for(int i = 0; i < reader.FieldCount; i++)
    {
        Console.Write(reader.GetName(i).ToString());
        Console.Write(reader.GetValue(i).ToString() + ",");
    }
    Console.Write("\n");
}

这就是我现在所拥有的。我可能只是回报读者。但是每次我想循环一些数据时,都需要在while循环中使用for循环。

想知道是否有更好的数据对象我可以填写并返回?我也很喜欢这方面阅读材料的链接。

顺便说一下我正在学习C#所以可能会有一些我不是100%明确的事情。

2 个答案:

答案 0 :(得分:2)

为什么不使用ADO.NET provider for MySql,并返回标准ADO.NET DataSet

这样做的好处是可以将处理数据的代码保存到其他数据库后端。

答案 1 :(得分:1)

您不应该绕过数据阅读器。只要您从数据读取器中读取数据,就必须保持数据库连接处于打开状态,因此您应该将所需的数据读入某个集合,以便尽早关闭数据库连接。

您可以将数据读入DataSetDataTable,也可以为对象创建类并直接填充。例如:

List<SomeCustomObject> data = new List<SomeCustomObject>();
while(reader.Read()) {
   int id = reader.GetInt32(0);
   string name = reader.GetString(1);
   data.Add(new SomeCustomObject(id, name);
}