実現したいこと
C#でデータベースからデータを取得しカスタムクラスを作成する際の
処理を以下のコードで行いたいと考えています。
発生している問題・エラーメッセージ
引数 2 を指定するメソッド 'SetValue' のオーバーロードはありません
### 該当のソースコード var sql = "select CustomerCD,CustomerName,Type,Area from T_CUSTOMER"; var customerList = DBManager.GetDataReader<CustomerInfo>(sql); class DBManager { public static List<T> GetDataReader<T>(string sql) where T : new() { var result = new List<T>(); DBSetting.Query(sql, reader => { var item = new T(); var properties = typeof(T).GetProperties(); foreach (var prop in properties) { if (reader[prop.Name] != DBNull.Value) { var value = Convert.ChangeType(reader[prop.Name], prop.PropertyType); prop.SetValue(item, value); } } result.Add(item); }); return result; } public sealed class CustomerInfo { // デフォルト コンストラクター public CustomerInfo() { // デフォルトのコンストラクターの実装 } // パラメータ付きコンストラクター public CustomerInfo( int customerCD, string customerName, string type, string area ) { CustomerCD = customerCD; CustomerName = customerName; Type = type; Area = area; } public int CustomerCD { get; set; } public string CustomerName { get; set; } public string Type { get; set; } public string Area { get; set; } }
試したこと
自分なり調べてみたのですが、問題がわかりません。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/04/24 00:48