我是靠谱客的博主 清新蜗牛,最近开发中收集的这篇文章主要介绍c#进阶之路-MVC&EF原理(笔记4),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、创建实体模型

public class Users
    {
        public string UserID { get; set; }
        public string UserName { get; set; }
        public string Password { set; get; }
        public string Name { get; set; }
        public string UserType { set; get; }
        public DateTime Time { set; get; }
        public string Address { get; set; }
    }

实体模型对应数据表中字段;
2、创建访问数据的类

public class DBHelper
    {
        private static string Connstr = "data source=.;initial catalog=OBS;user id=sa;pwd=111111";
        public T QueryDamin<T>(T userName) where T :Models.Users //申明泛型方法,传入userName值。条件约束为实体模型中的user
        {
            Type type = typeof(T);//获得泛型T的类型
            T t = (T)Activator.CreateInstance(type);//实例化泛型T
            string columns = string.Join(",", type.GetProperties().Select(p => string.Format("[{0}]", p.Name)));//以,号分割实力t,lanmb表达式一一对应,生成select语句
            string sql=string.Format("Select {0} FROM {1} WHERE UserName='{2}';",columns,type.Name, userName.UserName);//合并字符串
            using (SqlConnection conn = new SqlConnection(Connstr))
            {
                SqlCommand command = new SqlCommand(sql, conn);
                conn.Open();
                SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);
                if (reader.Read())
                {
                    foreach (var prop in type.GetProperties())//循环实例化的T模型
                    {
                        string proptyname = prop.Name;//proptyname等于模型中发字段
                        prop.SetValue(t, reader[prop.Name]);//给模型T一对一赋值
                        Console.WriteLine("{0}:{1}",prop.Name,prop.GetValue(t));,//prop.GetValue(t)获得实例的值
                    }
                    return t;//返回T
                }
            }
            return default(T);//无值返回默认值
        }

三、调用

class Program
    {
        static void Main(string[] args)
        {
            DBHelper db = new DBHelper();
            Users user = new Users() { UserName = "test6" };
            db.QueryDamin(user);
            Console.ReadKey();
        }
    }

利用反射实现了通用访问数据库类的泛型方法;

最后

以上就是清新蜗牛为你收集整理的c#进阶之路-MVC&EF原理(笔记4)的全部内容,希望文章能够帮你解决c#进阶之路-MVC&EF原理(笔记4)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(98)

评论列表共有 0 条评论

立即
投稿
返回
顶部