List<T> returnList = new List<T>();
conn.Open();
SqlCommand sCmd = new SqlCommand(query, conn);
SqlDataReader dataReader = sCmd.ExecuteReader();
T t = new T();
PropertyInfo[] p = o.GetType().GetProperties();
while(dataReader.Read())
{
for (int i = 0; i < p.Length; i++)
{
Console.WriteLine(p[i].GetValue(t)+" "+p[i].PropertyType+"
"+dataReader[i].GetType());
p[i].SetValue(dataReader[i], t);
}
returnList.Add(t);
}
return returnList;
実行時にsqldatareaderオブジェクトから特定のプロパティの値を設定します。 しかし、両方の参照が同じタイプであっても、ターゲットタイプの不一致を例外にしていますsqldatareader型から対象の型にプロパティ値を設定できません
この例外をどのラインで受け取りますか?データウェアハウスの列があなたのプロパティと同じ順序であることをどのように知っていますか? –
私が値を設定している行と、テーブルに列が置かれている順序をクラスに書き込んだ –
メソッドのシグネチャをコードに追加できますか? (公的/私的リスト myMethodName ...) –