方便测试,创建Console项目,将SqlMapper.cs文件添加到项目中
所有内容我都写在Program.cs文件中
首先做好准备工作,定义连接字符串、打开数据库连接方法、实体类、查询方法。
// 定义连接字符串 static private readonly string sqlconnection = "Data Source=192.168.1.10;Initial Catalog=Test;User Id=sa;Password=sa;"; // 打开数据库连接 static public SqlConnection OpenConnection() { SqlConnection connection = new SqlConnection(sqlconnection); connection.Open(); return connection; } //获取SendMcpDetail对象的集合。 static public IEnumerable<SendMcpDetail> SelectSendMcpDetails() { using (IDbConnection conn = OpenConnection()) { const string query = "select * from SendMcpDetail order by SendMessageID desc"; return conn.Query<SendMcpDetail>(query, null); } } // 实体类 SendMcpDetail public class SendMcpDetail { public string FormNo { get; set; } public string SignNo { get; set; } public string SignName { get; set; } public string SendPersonID { get; set; } public string SendMessageID { get; set; } public DateTime CreatTime { get; set; } }
这样简单的数据访问已经搭好,查询数据一句话就可以搞定
List<SendMcpDetail> AllSendMcpDetail = SelectSendMcpDetails().ToList<SendMcpDetail>();
查出所有的数据后开始做展示,这里我想程序自动获取实体类的属性和拿到查询后对应属性的值,用到了简单的反射技术
foreach (SendMcpDetail cat in AllSendMcpDetail) // 遍历查询个数 { foreach (var item in cat.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)) // 通过反射获取类中所有属性并遍历 { Console.WriteLine(item.Name +":"+item.GetValue(cat,null)); // 类中所有属性和读取该属性的值 } Console.WriteLine("-------------------------------"); }
反射也是第一次用到,感觉并不是很复杂,但是平时确实用的很少,反射可以动态获取程序集中的属性,方法,并可以访问、修改属性值和调用方法。
多做练习上手实践。
时间: 2024-10-14 10:39:07