zoukankan      html  css  js  c++  java
  • Api反射泛型添加


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    namespace DAL
    {
        public interface IDAL
        {
            /// <summary>
            /// 添加
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="sql"></param>
            /// <param name="m"></param>
            /// <returns></returns>
            int Add<T>(string sql, T m) where T : class, new();
            int Add1<T>(T m) where T : class, new();
            /// <summary>
            /// 显示
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="M"></param>
            /// <returns></returns>
            List<T> Query<T>(string m) where T : class, new();
        }
    }
    ////**************************////
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    namespace DAL
    {
        public abstract class AbstractDAL
        {
            public static string con = System.Configuration.ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
            public static IDbConnection SqlGet()
            {
                IDbConnection conn = new SqlConnection(con);
                if (conn.State!= ConnectionState.Closed)
                {
                    conn.Open();
                }
                return conn;
               
            }
        }
    }
    ///////***********/////
    using Dapper;
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Linq;
    using System.Reflection;
    using System.Text;
    using System.Threading.Tasks;
    namespace DAL
    {
        public class SqlDbHelper : IDAL
        {
           private IDbConnection con = AbstractDAL.SqlGet();
            public int Add<T>(string sql, T m) where T : class, new()
            {
                return con.Execute(sql,m);
            }
            /// <summary>
            /// 反射泛型添加 
            public int Add1<T>(T m) where T : class, new()
            {
                string sql = "";
                string TableName = "";
                string FileName = "";
                string Values = "";
                Type type = m.GetType();
                PropertyInfo[] infos = type.GetProperties();
                TableName = type.Name.Replace("Model", "");
                for (int i = 0; i < infos.Length; i++)
                {
                    if (!infos[i].Name.ToLower().Contains("id") && infos[i].GetValue(m) != null)
                    {
                        if (i + 1 == infos.Length)
                        {
                            FileName += infos[i].Name;
                            Values += "'" + infos[i].GetValue(m).ToString() + "'";
                        }
                        else
                        {
                            FileName += infos[i].Name + ",";
                            Values += "'" + infos[i].GetValue(m).ToString() + "',";
                        }
                    }
                }
                sql = " insert into [" + TableName + "](" + FileName + ") values(" + Values + ") ";
                return con.Execute(sql);
            }
            /// <summary>
            /// 显示
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="m"></param>
            /// <returns></returns>
            public List<T> Query<T>(string m) where T : class, new()
            {
                return con.Query<T>(m).ToList();
            }
        }
    }
    ///******////

    using DAL;
    using Model;
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    namespace BLL
    {
        public class RedBll
        {
            SqlDbHelper dal = new SqlDbHelper();
            /// <summary>
            /// Dapper添加
            /// </summary>
            /// <param name="m"></param>
            /// <returns></returns>
            public int Add(RedPacketModel m)
            {
                string sql = "insert into RedPacket(Name, TypeId, Num, Balance, Number, BalanceNum, Common, State,CreateTime) values('" + m.Name + "','" + m.Type + "','" + m.Num + "','" + m.Balance + "','" + m.Number + "','" + m.BalanceNum + "','" + m.Common + "','" + m.State + "','" + DateTime.Now + "')";
                return dal.Add(sql, m);
            }
            /// <summary>
            /// 运用反射类添加
            /// </summary>
            /// <param name="m"></param>
            /// <returns></returns>
            public int Insert(RedPacketModel m)
            {
                string sql = RefListSql.Add1(m);
                return dal.Add(sql, m);
            }
            /// <summary>
            /// 反射泛型添加
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="m"></param>
            /// <returns></returns>
            public int Append<T>(T m) where T : class, new()
            {
                return dal.Add1<T>(m);
            }
            /// <summary>
            /// 显示
            /// </summary>
            /// <returns></returns>
            public List<RedPacketModel> Show()
            {
                string sql = "select * from RedPacket";
                return dal.Query<RedPacketModel>(sql);
            }
            public List<RedPacketModel> Query(string TableName)
            {
                string sql = RefListSql.GetSemlSql(TableName);
                return dal.Query<RedPacketModel>(sql).ToList();
            }
            /// <summary>
            /// 显示
            /// </summary>
            /// <returns></returns>
            public List<TypeModel> TypeShow()
            {
                string sql = "select * from RedType";
                return dal.Query<TypeModel>(sql);
            }
            /// <summary>
            /// 显示
            /// </summary>
            /// <returns></returns>
            public List<StateModel> StateShow()
            {
                string sql = "select * from RedState";
                return dal.Query<StateModel>(sql);
            }
        }
    }
    ///****////
    using Model;
    using ServiceStack.Redis;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Net.Http;
    using System.Web.Http;
    namespace ZhouKao_RedPacket.Controllers
    {
        public class RedController : ApiController
        {
            BLL.RedBll bll = new BLL.RedBll();
            /// <summary>
            /// 显示
            /// </summary>
            /// <returns></returns>
            [Route("api/Search")]
            [HttpGet]
            public IHttpActionResult Show()
            {
                return Ok(bll.Show());
            }
            [Route("api/Query")]
            [HttpGet]
            public IHttpActionResult Query(string name)
            {
                return Ok(bll.Query(name));
            }
            [Route("api/Type")]
            [HttpGet]
            public IHttpActionResult TypeShow()
            {
                return Ok(bll.TypeShow());
            }
            [Route("api/State")]
            [HttpGet]
            public IHttpActionResult StateShow()
            {
                return Ok(bll.StateShow());
            }
            /// <summary>
            /// 添加
            /// </summary>
            /// <param name="m"></param>
            /// <returns></returns>
            [Route("api/Adds")]
            [HttpPost]
            public int Add(RedPacketModel m)
            {
                int flag = bll.Add(m);
                return flag;
            }
            /// <summary>
            /// 反射加泛型自动添加
            /// </summary>
            /// <param name="m"></param>
            /// <returns></returns>
            [Route("api/Append")]
            [HttpPost]
            public int Append(RedPacketModel m)
            {
                m.CreateTime = DateTime.Now;
                int flag = bll.Append(m);
                return flag;
            }
            [Route("api/Insert")]
            [HttpPost]
            public int Adds(RedPacketModel m)
            {
                m.CreateTime = DateTime.Now;
                int flag = bll.Insert(m);
                return flag;
            }
        }
    }
  • 相关阅读:
    学习进度条2
    构建之法阅读笔记04
    团队项目——班级派发布视频
    四则运算3
    软件工程结对作业02四则运算四
    构建之法阅读笔记01
    构建之法阅读笔记02
    学习进度条4
    学习进度条1
    返回一个二维整数数组中最大联通子数组的和
  • 原文地址:https://www.cnblogs.com/GuoLianSheng/p/13223558.html
Copyright © 2011-2022 走看看