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>
{
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();
}
}
/// <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;
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 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;
}
}
}
{
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;
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 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();
}
}
}
{
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();
{
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);
}
}
}
/// 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;
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;
}
}
}
{
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;
}
}
}