封装一个泛型的数据库访问查询方法

public T Get<T>(int id) where T : BaseModel
   {
     string ConnectionString = "Data Source=DESKTOP-63QE7M1;
Database=CustomerDB; User ID=sa; Password=sa123;
MultipleActiveResultSets=True";
     Type type = typeof(T);
     var propList = type.GetProperties().Select(p => $"[{p.Name}]");
     string props = string.Join(',', propList); 
     string tableName = type.Name;
     string StringSql = $"select {props} from [{tableName}] where id=" +
id;
     object oInstance = Activator.CreateInstance(type);
     using (SqlConnection connection = new
SqlConnection(ConnectionString))
{
       connection.Open();
       SqlCommand sqlCommand = new SqlCommand(StringSql, connection);
       SqlDataReader reader = sqlCommand.ExecuteReader();
       reader.Read();
       foreach (var prop in type.GetProperties())
       {
         prop.SetValue(oInstance, reader[prop.Name]);
       }
     }
     return (T)oInstance;
   }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值