自从我使用 .NET 以来已经有很长时间了,但幸运的是,我几乎完成了编写一个比较 sqlite 和 mysql 数据库的工具。我在尝试为我的包装器编写一个处理 SELECT 调用的函数时遇到了一个问题,因为我无法完全弄清楚数据读取器。
我的理解是,阅读器上循环的每次迭代都是下一行,GetString(x) 返回“x”的列值作为索引。我发现的所有示例都知道他们需要的行/列名称。如何通过“SELECT * FROM”调用执行此操作并保存列名/值以供以后访问?微软似乎有一个“FieldCount”功能,但我在 MySQL 连接器上是空的。
谢谢!
public void Query(string query, string tableName)
{
//Open connection
if (this.OpenConnection() == true)
{
//Create Command
MySqlCommand cmd = new MySqlCommand(query, connection);
MySqlDataReader dataReader = cmd.ExecuteReader();
//Read the data and store them in the list
while (dataReader.Read())
{
int count = Count(tableName);
for (int x = 0; x < count; x++)
{
Console.WriteLine(dataReader.GetString(count));
}
}
//close Data Reader
dataReader.Close();
//close Connection
this.CloseConnection();
}
}