あなたが達成できる最善のことはIDataRecord interfaceについてのMSDNドキュメントで説明されていますが、最後に、あなたはまだ、それぞれ単一の列を読んで、どこかにそれらを格納する必要があります。 さらにオブジェクト指向のアプローチでは、レコードのデータを表すクラスを作成し、そのクラスのインスタンスを作成し、そのプロパティを初期化してからインスタンスを別のメソッドに渡します。
したがって、あなたがどこかに自分のクラスPersonに定義されている今、単純な
SELECT IDPerson, FirstName, LastName from Persons
で使用
public class Person
{
public int IDPerson {get;set;}
public string FirstName {get;set;}
public string LastName {get;set;}
}
次に、あなたのループが
で動作します
MySqlCommand cmd = new MySqlCommand(sql, conn);
MySqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
// Declare and initialize the instance of a Person
// (this is a single variable as per your requirements)
Person p = new Person()
{
IDPerson = rdr.GetInt32(0),
FirstName = rdr.GetString(1),
LastName = rdr.GetString(2)
};
ProcessPerson(p);
}
'var str = rdr.GetString(0)' –
@Rakitićこれは単に最初の列の値を保存しませんか?私は行全体を格納する方法を尋ねています – user2181948
あなたが達成できる最も良いことは、[IDataRecordインターフェイス](https://msdn.microsoft.com/en-us/library/system.data)に関するMSDNドキュメントで説明されています。 idatareader(v = vs.110).aspx)ですが、最後に各列を読み込んでどこかに格納する必要があります。 – Steve