Прошло много времени с тех пор, как я использовал .NET, но, к счастью, почти закончил писать инструмент для сравнения баз данных sqlite и mysql. Однако я столкнулся с проблемой при попытке написать функцию для моей оболочки, которая будет обрабатывать вызовы SELECT, поскольку я не могу полностью понять устройство чтения данных.
Насколько я понимаю, каждая итерация цикла в считывателе - это следующая строка, а GetString(x) возвращает значение столбца для "x" в качестве индекса. Все примеры, которые я нашел, вошли в него, зная имена строк/столбцов, которые им нужны. Как я могу сделать это с помощью вызова «SELECT * FROM» и сохранить имена/значения столбцов для последующего доступа? Кажется, у Microsoft есть функция «FieldCount», но я не могу найти ее в MySQL Connector.
Спасибо!
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();
}
}