/// <summary> /// 创建添加方法 /// </summary> /// <param name="model"></param> /// <returns></returns> private StringBuilder CreateAddFunction(CreateCodeRequestModel model) { StringBuilder codeStr = new StringBuilder(); codeStr.Append(NewLine); codeStr.Append(" /// <summary>"); codeStr.Append(NewLine); codeStr.Append(" /// 添加"); codeStr.Append(NewLine); codeStr.Append(" /// <param name=\"model\"></param>"); codeStr.Append(NewLine); codeStr.Append(" /// <returns>插入返回Id</returns>"); codeStr.Append(NewLine); codeStr.Append(" public int Add(").AppendFormat("{0}Model model)", model.TableName); codeStr.Append(NewLine); codeStr.Append(" {"); codeStr.Append(NewLine); codeStr.Append(" string sqlStr = @\"USE ").Append(model.DataBaseName); codeStr.Append(NewLine); codeStr.Append(" INSERT INTO ").AppendFormat("{0}(", model.TableName); codeStr.Append(NewLine); StringBuilder addFieldBuilder = new StringBuilder(); StringBuilder addParamBuilder = new StringBuilder(); StringBuilder addParamValueBuilder = new StringBuilder(); for (int i = 1; i < model.NameList.Count; i++) { //add字段 addFieldBuilder.Append(" ").Append(model.NameList[i]); addFieldBuilder.Append(i < model.NameList.Count - 1 ? " ," : " )"); addFieldBuilder.Append(NewLine); //字段参数化 addParamBuilder.Append(" ").AppendFormat("@{0}", model.NameList[i]); addParamBuilder.Append(i < model.NameList.Count - 1 ? " ," : " )\";"); addParamBuilder.Append(NewLine); //参数化值 addParamValueBuilder.Append(" new SqlParameter(\"@") .AppendFormat("{0}\", model.{0})", model.NameList[i]); addParamValueBuilder.Append(i < model.NameList.Count - 1 ? " ," : string.Empty); addParamValueBuilder.Append(NewLine); } codeStr.Append(addFieldBuilder); codeStr.Append(" VALUES ("); codeStr.Append(NewLine); codeStr.Append(addParamBuilder); codeStr.Append(" SqlParameter[] parameters ="); codeStr.Append(NewLine); codeStr.Append(" {"); codeStr.Append(NewLine); codeStr.Append(addParamValueBuilder); codeStr.Append(" };"); codeStr.Append(NewLine); codeStr.Append(" return ConvertHelper.ToInt(SqlHelper.ExecuteScalarText(sqlStr, parameters));"); codeStr.Append(NewLine); codeStr.Append(" }"); codeStr.Append(NewLine); return codeStr; }
/// <summary> /// 生成代码 /// </summary> /// <param name="model"></param> /// <returns></returns> public override string CreateCode(CreateCodeRequestModel model) { StringBuilder codeStr = new StringBuilder(); codeStr.Append("using System.Collections.Generic;"); codeStr.Append(NewLine); codeStr.Append("using System.Data;"); codeStr.Append(NewLine); codeStr.Append("using System.Data.SqlClient;"); codeStr.Append(NewLine); codeStr.Append(NewLine); codeStr.AppendFormat("namespace {0}", model.NameSpace); codeStr.Append(NewLine); codeStr.Append("{"); codeStr.Append(NewLine); codeStr.Append(" /// <summary>"); codeStr.Append(NewLine); codeStr.Append(" /// ").AppendFormat("{0}Server", model.TableName); codeStr.Append(NewLine); codeStr.Append(" /// </summary>"); codeStr.Append(NewLine); codeStr.Append(" public class ").AppendFormat("{0}Server", model.TableName); codeStr.Append(NewLine); codeStr.Append(" {"); codeStr.Append(NewLine); codeStr.Append(" readonly ") .AppendFormat("{0}DataAccess _{1}DataAccess = new {0}DataAccess();", model.TableName, model.TableName.ToLower()); codeStr.Append(NewLine); //添加方法 codeStr.Append(CreateAddFunction(model)); //更新方法 codeStr.Append(CreateUpdateFunction(model)); //删除 codeStr.Append(CreateDeleteFunction(model)); //查询返回Table codeStr.Append(CreateSelectDataTableFunction(model)); //查询返回List codeStr.Append(CreateSelectListFunction(model)); //通过Id查询返回Table codeStr.Append(CreateSelectDataTableByIdFunction(model)); //通过Id查询返回List codeStr.Append(CreateSelectListByIdFunction(model)); codeStr.Append(" }"); codeStr.Append(NewLine); codeStr.Append("}"); codeStr.Append(NewLine); return codeStr.ToString(); }
/// <summary> /// 创建添加方法 /// </summary> /// <param name="model"></param> /// <returns></returns> private StringBuilder CreateAddFunction(CreateCodeRequestModel model) { StringBuilder codeStr = new StringBuilder(); codeStr.Append(NewLine); codeStr.Append(" /// <summary>"); codeStr.Append(NewLine); codeStr.Append(" /// 添加"); codeStr.Append(NewLine); codeStr.Append(" /// </summary>"); codeStr.Append(NewLine); codeStr.Append(" /// <param name=\"model\"></param>"); codeStr.Append(NewLine); codeStr.Append(" /// <returns>是否成功</returns>"); codeStr.Append(NewLine); codeStr.Append(" public bool Add(").AppendFormat("{0}Model model)", model.TableName); codeStr.Append(NewLine); codeStr.Append(" {"); codeStr.Append(NewLine); codeStr.Append(" return ").AppendFormat("_{0}DataAccess.Add(model);", model.TableName.ToLower()); codeStr.Append(NewLine); codeStr.Append(" }"); codeStr.Append(NewLine); return codeStr; }
/// <summary> /// 生成代码 /// </summary> /// <returns></returns> public string CreateCode() { //参数接收 string tableName = Request.Form["TableName"]; string nameSpace = Request.Form["NameSpace"]; string dataBaseName = Request.Form["DataBaseName"]; List<string> nameList = new List<string>(Request.Form["Names"] == null ? new string[0] : Request.Form["Names"].Split('#')); List<string> typeList = new List<string>(Request.Form["Types"] == null ? new string[0] : Request.Form["Types"].Split('#')); List<string> defaultValueList = new List<string>(Request.Form["DefalutValues"] == null ? new string[0] : Request.Form["DefalutValues"].Split('#')); List<string> descriptionList = new List<string>(Request.Form["Descriptions"] == null ? new string[0] : Request.Form["Descriptions"].Split('#')); int codeType = ConvertHelper.ToInt(Request.Form["CodeType"]); //参数验证 if (tableName == string.Empty || nameSpace == string.Empty) { return string.Empty; } if (nameList.Count != typeList.Count || nameList.Count != defaultValueList.Count || descriptionList.Count != nameList.Count) { return string.Empty; } CreateCodeRequestModel requestModel = new CreateCodeRequestModel { NameList = nameList, TypeList = typeList, DefalutValueList = defaultValueList, DescriptionList = descriptionList, TableName = tableName, NameSpace = nameSpace, DataBaseName = dataBaseName }; CreateCodeBase createCodeBase = CreateCodeFactory.CreateCodeClass<CreateCodeBase>(codeType); return createCodeBase == null ? string.Empty : createCodeBase.CreateCode(requestModel); }
/// <summary> /// 生成代码 /// </summary> /// <param name="model"></param> /// <returns></returns> public override string CreateCode(CreateCodeRequestModel model) { StringBuilder codeStr = new StringBuilder(); codeStr.Append("using System.Collections.Generic;"); codeStr.Append(NewLine); codeStr.Append(NewLine); codeStr.AppendFormat("namespace {0}", model.NameSpace); codeStr.Append("{"); codeStr.Append(NewLine); codeStr.Append(" /// <summary>"); codeStr.Append(NewLine); codeStr.Append(" /// ").AppendFormat("{0}Model",model.TableName); codeStr.Append(NewLine); codeStr.Append(@" /// </summary>"); codeStr.Append(NewLine); codeStr.Append(" public class ").AppendFormat("{0}Model", model.TableName); codeStr.Append(NewLine); codeStr.Append(" {"); codeStr.Append(NewLine); //默认构造函数赋默认值 if (!model.DefalutValueList.All(string.IsNullOrWhiteSpace)) { codeStr.Append(" /// <summary>"); codeStr.Append(NewLine); codeStr.Append(" /// 默认值"); codeStr.Append(NewLine); codeStr.Append(" /// </summary>"); codeStr.Append(NewLine); codeStr.Append(" public ").AppendFormat("{0}Model ()", model.TableName); codeStr.Append(NewLine); codeStr.Append(" {"); codeStr.Append(NewLine); for (int i = 0; i < model.NameList.Count; i++) { if (string.IsNullOrWhiteSpace(model.DefalutValueList[i]) || !DefaultValueDic.ContainsKey(model.DefalutValueList[i])) continue; codeStr.Append(" ").AppendFormat("{0} = {1};", model.NameList[i], model.TypeList[i] == "bit" ? ConvertHelper.ToBool(DefaultValueDic[model.DefalutValueList[i]]).ToString().ToLower() : DefaultValueDic[model.DefalutValueList[i]]); codeStr.Append(NewLine); } codeStr.Append(" }"); codeStr.Append(NewLine); codeStr.Append(NewLine); } //参数 for (int i = 0; i < model.NameList.Count; i++) { codeStr.Append(" /// <summary>"); codeStr.Append(NewLine); codeStr.Append(" /// ").Append(model.DescriptionList[i]); codeStr.Append(NewLine); codeStr.Append(" /// </summary>"); codeStr.Append(NewLine); codeStr.Append(" public ").AppendFormat("{0} {1} {{ get; set; }}", DataTypeDic.ContainsKey(model.TypeList[i]) ? DataTypeDic[model.TypeList[i]] : "string", model.NameList[i]); codeStr.Append(NewLine); if (i < model.NameList.Count - 1) { codeStr.Append(NewLine); } } codeStr.Append(" }"); codeStr.Append(NewLine); codeStr.Append("}"); return codeStr.ToString(); }
/// <summary> /// 创建查询方法,返回List /// </summary> /// <param name="model"></param> /// <returns></returns> private StringBuilder CreateSelectListFunction(CreateCodeRequestModel model) { StringBuilder codeStr = new StringBuilder(); codeStr.Append(NewLine); codeStr.Append(" /// <summary>"); codeStr.Append(NewLine); codeStr.Append(" /// 查询"); codeStr.Append(NewLine); codeStr.Append(" /// </summary>"); codeStr.Append(NewLine); codeStr.Append(" /// <param name=\"showStr\">查询字段</param>"); codeStr.Append(NewLine); codeStr.Append(" /// <param name=\"whereStr\">查询条件</param>"); codeStr.Append(NewLine); codeStr.Append(" /// <param name=\"parameters\">参数</param>"); codeStr.Append(NewLine); codeStr.Append(" /// <returns>List</returns>"); codeStr.Append(NewLine); codeStr.Append(" public List<") .AppendFormat("{0}Model> SelectList(string showStr, string whereStr, SqlParameter[] parameters)", model.TableName); codeStr.Append(NewLine); codeStr.Append(" {"); codeStr.Append(NewLine); codeStr.Append(" return ").AppendFormat("_{0}DataAccess.SelectList(showStr, whereStr, parameters);", model.TableName.ToLower()); codeStr.Append(NewLine); codeStr.Append(" }"); codeStr.Append(NewLine); return codeStr; }
/// <summary> /// 创建通过Id查询的方法,返回List /// </summary> /// <param name="model"></param> /// <returns></returns> private StringBuilder CreateSelectListByIdFunction(CreateCodeRequestModel model) { StringBuilder codeStr = new StringBuilder(); codeStr.Append(NewLine); codeStr.Append(" /// <summary>"); codeStr.Append(NewLine); codeStr.Append(" /// 查询"); codeStr.Append(NewLine); codeStr.Append(" /// </summary>"); codeStr.Append(NewLine); codeStr.Append(" /// <param name=\"id\">Id</param>"); codeStr.Append(NewLine); codeStr.Append(" /// <returns>List</returns>"); codeStr.Append(NewLine); codeStr.Append(" public List<").AppendFormat("{0}Model> SelectList(int id)", model.TableName); codeStr.Append(NewLine); codeStr.Append(" {"); codeStr.Append(NewLine); codeStr.Append(" return ").AppendFormat("_{0}DataAccess.SelectList(id);", model.TableName.ToLower()); codeStr.Append(NewLine); codeStr.Append(" }"); codeStr.Append(NewLine); return codeStr; }
/// <summary> /// 创建删除方法 /// </summary> /// <param name="model"></param> /// <returns></returns> private StringBuilder CreateDeleteFunction(CreateCodeRequestModel model) { StringBuilder codeStr = new StringBuilder(); codeStr.Append(NewLine); codeStr.Append(" /// <summary>"); codeStr.Append(NewLine); codeStr.Append(" /// 删除"); codeStr.Append(NewLine); codeStr.Append(" /// </summary>"); codeStr.Append(NewLine); codeStr.Append(" /// <param name=\"id\"></param>"); codeStr.Append(NewLine); codeStr.Append(" /// <returns></returns>"); codeStr.Append(NewLine); codeStr.Append(" public bool Delete(int id)"); codeStr.Append(NewLine); codeStr.Append(" {"); codeStr.Append(NewLine); codeStr.Append(" return ").AppendFormat("_{0}DataAccess.Delete(id);", model.TableName.ToLower()); codeStr.Append(NewLine); codeStr.Append(" }"); codeStr.Append(NewLine); return codeStr; }
/// <summary> /// 创建更新方法 /// </summary> /// <param name="model"></param> /// <returns></returns> private StringBuilder CreateUpdateFunction(CreateCodeRequestModel model) { StringBuilder codeStr = new StringBuilder(); codeStr.Append(NewLine); codeStr.Append(" /// <summary>"); codeStr.Append(NewLine); codeStr.Append(" /// 更新"); codeStr.Append(NewLine); codeStr.Append(" /// </summary>"); codeStr.Append(NewLine); codeStr.Append(" /// <param name=\"model\"></param>"); codeStr.Append(NewLine); codeStr.Append(" /// <returns>是否成功</returns>"); codeStr.Append(NewLine); codeStr.Append(" public bool Update(").AppendFormat("{0}Model model)", model.TableName); codeStr.Append(NewLine); codeStr.Append(" {"); codeStr.Append(NewLine); codeStr.Append(" string sqlStr = @\"USE ").Append(model.DataBaseName); codeStr.Append(NewLine); codeStr.Append(" UPDATE ").Append(model.TableName); codeStr.Append(NewLine); codeStr.Append(" SET"); codeStr.Append(NewLine); StringBuilder editSetBuilder = new StringBuilder(); StringBuilder editParamValueBuilder = new StringBuilder(); for (int i = 0; i < model.NameList.Count; i++) { if (i > 0) { editSetBuilder.Append(" ").AppendFormat("{0} = @{0}", model.NameList[i]); editSetBuilder.Append(i < model.NameList.Count - 1 ? " ," : string.Empty); editSetBuilder.Append(NewLine); } editParamValueBuilder.Append(" new SqlParameter(\"@") .AppendFormat("{0}\",model.{0})", model.NameList[i]); editParamValueBuilder.Append(i < model.NameList.Count - 1 ? "," : string.Empty); editParamValueBuilder.Append(NewLine); } codeStr.Append(editSetBuilder); codeStr.Append(" WHERE Id = @Id\";"); codeStr.Append(NewLine); codeStr.Append(" SqlParameter[] parameters ="); codeStr.Append(NewLine); codeStr.Append(" {"); codeStr.Append(NewLine); codeStr.Append(editParamValueBuilder); codeStr.Append(" };"); codeStr.Append(NewLine); codeStr.Append(" return SqlHelper.ExecteNonQueryText(sqlStr, parameters) > 0;"); codeStr.Append(NewLine); codeStr.Append(" }"); codeStr.Append(NewLine); return codeStr; }
/// <summary> /// 创建查询方法,返回Table /// </summary> /// <param name="model"></param> /// <returns></returns> private StringBuilder CreateSelectDataTableFunction(CreateCodeRequestModel model) { StringBuilder codeStr = new StringBuilder(); codeStr.Append(NewLine); codeStr.Append(" /// <summary>"); codeStr.Append(NewLine); codeStr.Append(" /// 查询"); codeStr.Append(NewLine); codeStr.Append(" /// </summary>"); codeStr.Append(NewLine); codeStr.Append(" /// <param name=\"showStr\">查询字段</param>"); codeStr.Append(NewLine); codeStr.Append(" /// <param name=\"whereStr\">查询条件</param>"); codeStr.Append(NewLine); codeStr.Append(" /// <param name=\"parameters\">参数</param>"); codeStr.Append(NewLine); codeStr.Append(" /// <returns>DataTable</returns>"); codeStr.Append(NewLine); codeStr.Append(" public DataTable SelectDataTable(string showStr, string whereStr, SqlParameter[] parameters)"); codeStr.Append(NewLine); codeStr.Append(" {"); codeStr.Append(NewLine); codeStr.Append(" string sqlStr = string.Format(@\"USE ").Append(model.DataBaseName); codeStr.Append(NewLine); codeStr.Append(" SELECT {0}"); codeStr.Append(NewLine); codeStr.Append(" FROM ").Append(model.TableName); codeStr.Append(NewLine); codeStr.Append(" WHERE {1}\", showStr, whereStr);"); codeStr.Append(NewLine); codeStr.Append(" return SqlHelper.ExecteDataTableText(sqlStr, parameters);"); codeStr.Append(NewLine); codeStr.Append(" }"); codeStr.Append(NewLine); return codeStr; }
/// <summary> /// 创建通过Id查询的方法,返回DataTable /// </summary> /// <param name="model"></param> /// <returns></returns> private StringBuilder CreateSelectDataTableByIdFunction(CreateCodeRequestModel model) { StringBuilder codeStr = new StringBuilder(); codeStr.Append(NewLine); codeStr.Append(" /// <summary>"); codeStr.Append(NewLine); codeStr.Append(" /// 查询"); codeStr.Append(NewLine); codeStr.Append(" /// </summary>"); codeStr.Append(NewLine); codeStr.Append(" /// <param name=\"id\">Id</param>"); codeStr.Append(NewLine); codeStr.Append(" /// <returns>DataTable</returns>"); codeStr.Append(NewLine); codeStr.Append(" public DataTable SelectDataTable(int id)"); codeStr.Append(NewLine); codeStr.Append(" {"); codeStr.Append(NewLine); codeStr.Append(" string sqlStr = @\"USE ").Append(model.DataBaseName); codeStr.Append(NewLine); codeStr.Append(" SELECT"); codeStr.Append(NewLine); for (int i = 0; i < model.NameList.Count; i++) { codeStr.Append(" ").Append(model.NameList[i]); codeStr.Append(i < model.NameList.Count - 1 ? " ," : string.Empty); codeStr.Append(NewLine); } codeStr.Append(" FROM ").Append(model.TableName); codeStr.Append(NewLine); codeStr.Append(" WHERE Id = @Id\";"); codeStr.Append(NewLine); codeStr.Append(" SqlParameter[] parameters ="); codeStr.Append(NewLine); codeStr.Append(" {"); codeStr.Append(NewLine); codeStr.Append(" new SqlParameter(\"@Id\",id)"); codeStr.Append(NewLine); codeStr.Append(" };"); codeStr.Append(NewLine); codeStr.Append(" return SqlHelper.ExecteDataTableText(sqlStr, parameters);"); codeStr.Append(NewLine); codeStr.Append(" }"); codeStr.Append(NewLine); return codeStr; }
/// <summary> /// 创建删除方法 /// </summary> /// <param name="model"></param> /// <returns></returns> private StringBuilder CreateDeleteFunction(CreateCodeRequestModel model) { StringBuilder codeStr = new StringBuilder(); codeStr.Append(NewLine); codeStr.Append(" /// <summary>"); codeStr.Append(NewLine); codeStr.Append(" /// 删除"); codeStr.Append(NewLine); codeStr.Append(" /// </summary>"); codeStr.Append(NewLine); codeStr.Append(" /// <param name=\"id\"></param>"); codeStr.Append(NewLine); codeStr.Append(" /// <returns></returns>"); codeStr.Append(NewLine); codeStr.Append(" public bool Delete(int id)"); codeStr.Append(NewLine); codeStr.Append(" {"); codeStr.Append(NewLine); codeStr.AppendFormat(" string sqlStr = @\"USE ").Append(model.DataBaseName); codeStr.Append(NewLine); codeStr.Append(" DELETE FROM ").Append(model.TableName); codeStr.Append(NewLine); codeStr.Append(" WHERE Id = @Id\";"); codeStr.Append(NewLine); codeStr.Append(" SqlParameter[] parameters ="); codeStr.Append(NewLine); codeStr.Append(" {"); codeStr.Append(NewLine); codeStr.Append(" new SqlParameter(\"@Id\",id)"); codeStr.Append(NewLine); codeStr.Append(" };"); codeStr.Append(NewLine); codeStr.Append(" return SqlHelper.ExecteNonQueryText(sqlStr, parameters) > 0;"); codeStr.Append(NewLine); codeStr.Append(" }"); codeStr.Append(NewLine); return codeStr; }