只是一个简单的问题,因为我发现的大多数博客和教程都是关于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%明确的事情。
答案 0 :(得分:2)
为什么不使用ADO.NET provider for MySql,并返回标准ADO.NET DataSet?
这样做的好处是可以将处理数据的代码保存到其他数据库后端。
答案 1 :(得分:1)
您不应该绕过数据阅读器。只要您从数据读取器中读取数据,就必须保持数据库连接处于打开状态,因此您应该将所需的数据读入某个集合,以便尽早关闭数据库连接。
您可以将数据读入DataSet
或DataTable
,也可以为对象创建类并直接填充。例如:
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);
}