.NET を使用してから長い時間が経ちましたが、ありがたいことに sqlite と mysql データベースを比較するためのツールをほぼ書き終えました。データ リーダーを完全に把握できないため、SELECT 呼び出しを処理するラッパーの関数を作成しようとすると、問題が発生します。
私の理解では、リーダーでのループの各反復は次の行であり、GetString(x) は "x" の列値をインデックスとして返します。私が見つけたすべての例は、必要な行/列の名前を知っていました。「SELECT * FROM」呼び出しでこれを実行し、後でアクセスできるように列名/値を保存するにはどうすればよいですか? Microsoft には「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();
}
}