Friends、 私は実行したいリストを返す動的なSQLクエリを持っています。 gooleでの私のインターネット検索の大半から、リストのタイプがsqldatareaderをリストに変換することがわかっていなければなりません。 実行されるクエリがわからない場合、どうすればいいですか?動的クエリのため、SqlDataReaderを不明な型のリストに変換します。
Execute(String query)
{
SqlConnection con=new SqlConnection(connection);//connection from elsewhere
SqlCommand cmd = new SqlCommand(query);
cmd.connection=con;
con.Open();
SqlDataReader result=cmd.ExecuteReader();
//How to convert result to a list when i do not know the table structure
}
ここで結果をリストに変換したいと思います。 しかし、私は、クエリが動作するテーブルの詳細を知らない。クエリは、任意のテーブルを照会することができます異なります。 このような状況では、どのようにして結果をリストに変換できますか?出来ますか?
これは私にテーブルの詳細が分からなければ、リストのエントリとなるものは何か、それとも何のリストになるのでしょうか?
この質問に答えるために、別の質問をします。各リストエントリがSqlDataReader結果の1つの行に対応するリストを持つことは可能ですか?
リスト< DataRow> x = result.Select()。ToList()を使用することもできますが、これを使用したくないです。
リストの各エントリを結果の各行にマッピングすると同時に、行を作成するアトミックなデータ型で構成する必要があります。
例:studentからstudenthip studentidを選択してください。 これは私にSqlDataReaderの結果を返します。型に文字列とintが含まれているリストを作成し、その結果の行をリストに入れたいとします。
マークがstudentid = 1432のマークから選択マーク、件名、グレードに変更された場合、タイプにint、string、charが含まれているリストを作成し、その結果の行でリストを埋めたい。
これを行う方法はありますか?
PSユーザーは、クエリを作成し、期待する列の数がわかっているので、上記のようにリストを返すと値を選択する方法を知っています。
あなたはSqlTableAdapterを使用することはできませんか?あなたは結果のスキーマであるDataRowのコレクションを取得します –