首页 > 数据库 >C#的相关知识,封装一个泛型的数据库访问查询方法

C#的相关知识,封装一个泛型的数据库访问查询方法

时间:2023-12-18 14:35:52浏览次数:36  
标签:string C# 查询方法 prop reader 泛型 type id Name

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;
}

 

标签:string,C#,查询方法,prop,reader,泛型,type,id,Name
From: https://www.cnblogs.com/xhu218/p/17911142.html

相关文章

  • Linux 安装 Harbor Docker镜像仓库&&远程访问
    Harbor是为企业用户设计的容器镜像仓库开源项目,包括了权限管理(RBAC)、LDAP、审计、安全漏洞扫描、镜像验真、管理界面、自我注册、HA等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能。下面介绍如何在Linux安装并且使用cpolar内网穿透工具实现远程访问Har......
  • Amazon CodeWhisperer 在 vscode 的应用
    文章作者:旧花阴CodeWhisperer是一款可以帮助程序员更快、更安全地编写代码的工具,可以在他们的开发环境中实时提供代码建议和推荐。亚马逊云科技发布的这款代码生成工具CodeWhisperer最大的优势就是对于个人用户免费。以在vscode为例,演示安装过程。亚马逊云科技开发者社区......
  • Java Spring Boot 集成 Swagger 生成 API文档(SpringDoc)
    在我们进行项目开发的时候,有些文档是必不可少的,或者也有利于自己查阅,比如API接口文档。在SpringBoot中通常有有个选择:springfoxspringdoc因为springfox和SpringBoot版本适配问题是个坑,这里我们选用更加友好的springDoc,而且用起来更顺手,很丝滑。以下是环境:Spring......
  • OPENWRT 软路由和集客1AC+3AP组网实例测试
    网络系统:=主路由系统:IntelJ3160运行coolsnowwolf的OpenWrtR22.4.1内核版本5.15.35=集客无线系统:http://file.cnrouter.com/==AC1台,千兆上行连接迅雷下载宝--刷集客AC控制器AC7621,IP:192.168.2.146==AP3台,均千兆上行连接到J3160软路由1台联想Y1S(单千兆口上行)   ......
  • docker容器自动重启命令
    在服务器意外断电或者重启的情况下,docker服务是关闭的一个状态,每次断电或者重启都要使用命令手动重启服务,但是每次都要手动命令重启,比较麻烦,因此根据要求设置docker服务自动重启。1、设置docker容器进行开机自动重启我们可以使用以下命令进行设置docker容器自动重启#docker服务设置......
  • 参会指南 |WAIC 2023零数科技产业区块链生态论坛专业观众线下参会指引
    2023年7月7日(周五)13:00-17:00,由赛迪区块链研究院指导,上海零数科技有限公司主办的“数实融合,智领未来”产业区块链生态论坛,将于上海世博中心518会议室举行。论坛拟邀政府领导、院士学者、企业代表等重磅嘉宾,聚焦区块链赋能产业创新变革与实践应用,推动数字经济与实体经济深度融合。线......
  • 网页CAD(WEB CAD SDK)绘制的批注信息如何保存到图纸上
    前言用户在网页中浏览编辑DWG图纸之后,会在图纸上进行审图批注,批注的内容会保存到服务器或原图纸中,本章节我们讲一下保存批注信息的方法,如果你还不会创建一个在线浏览编辑CAD图纸的前端应用请参考使用MxDraw云图开发包的文档和mxcad库。在线功能测试:https://demo.mxdraw3d.com:30......
  • C#中CancellationToken和CancellationTokenSource用法
    C#中CancellationToken和CancellationTokenSource用法 之前做开发时,一直没注意这个东西,做了.netcore之后,发现CancellationToken用的越来越平凡了。这也难怪,原来.netframework使用异步的不是很多,而.netcore首推异步编程,到处可以看到Task的影子,而CancellationToken......
  • C#中ref关键字的用法总结
    C#中ref关键字的用法总结 ref表示引用的意思,C#中它有多种用法,这里简单总结一下:1、按引用传递参数具体可见:C#中的值传递与引用传递(in、out、ref)2、引用局部变量引用局部变量指的是在变量声明时使用ref关键字(或者使用refreadonly表示未只读),表示这个变......
  • 2023 年活力开源贡献者、开源项目揭晓|JeecgBoot 成功入选
    JeecgBoot是一个开源的企业级快速开发平台,它成功入选2023年度生态开源项目,这是对其十年坚持开源的实至名归的认可。作为一个开源项目,JeecgBoot在过去的十年里一直秉承着开放、共享、协作的理念,不断推动着开源社区的发展。其成功入选2023年度生态开源项目,无疑是对其在开源领......