コード例 #1
0
        /// <summary>
        /// 创建更新方法
        /// </summary>
        /// <param name="table">表对象</param>
        /// <param name="storedProcedurePrefix">存储过程前缀</param>
        /// <param name="streamWriter">写入文件流</param>
        private static void CreateUpdateMethod(Table table, string storedProcedurePrefix, StreamWriter streamWriter)
        {
            if (table.PrimaryKeys.Count > 0 && table.Columns.Count != table.PrimaryKeys.Count && table.Columns.Count != table.ForeignKeys.Count)
            {
                // 插入空行
                streamWriter.WriteLine();
                streamWriter.WriteLine();

                // 头
                streamWriter.WriteLine("\t\t/// <summary>");
                streamWriter.WriteLine("\t\t/// 更新记录");
                streamWriter.WriteLine("\t\t/// </summary>");

                streamWriter.Write("\t\tpublic static void Update(" + Utility.FormatPascal(table.ProgrammaticAlias) + " " + table.ProgrammaticAlias.ToLower() + ")");
                streamWriter.WriteLine("\t\t{");
                streamWriter.WriteLine("\t\t\tString strSpName = \"" + storedProcedurePrefix + table.Name + "Update\";");
                streamWriter.WriteLine("\t\t\tSqlParameter[] sqlSpParaArray = new SqlParameter[" + table.Columns.Count.ToString() + "];");

                // 创建参数
                streamWriter.WriteLine("\t\t\t// 创建参数");
                for (int i = 0; i < table.Columns.Count; i++)
                {
                    Column column = (Column)table.Columns[i];
                    streamWriter.WriteLine("\t\t\t" + "sqlSpParaArray[" + i.ToString() + "] =" + Utility.CreateSqlParameterNoCommand(table, column, false) + ";");
                }
                streamWriter.WriteLine("\t\t\t" + "DataProvider.Instance.ExecuteSp(strSpName,sqlSpParaArray);");
                streamWriter.WriteLine("");

                streamWriter.WriteLine("\t\t}");
            }
        }
コード例 #2
0
        /// <summary>
        /// 创建新增方法
        /// </summary>
        /// <param name="table">表对象</param>
        /// <param name="storedProcedurePrefix">存储过程前缀</param>
        /// <param name="streamWriter">写入文件流</param>
        private static void CreateInsertMethod(Table table, string storedProcedurePrefix, StreamWriter streamWriter)
        {
            // Append the method header
            streamWriter.WriteLine("\t\t/// <summary>");
            streamWriter.WriteLine("\t\t/// 新增记录");
            streamWriter.WriteLine("\t\t/// </summary>");


            streamWriter.Write("\t\tpublic static void Insert(" + Utility.FormatPascal(table.ProgrammaticAlias) + " " + table.ProgrammaticAlias.ToLower() + ")");
            streamWriter.WriteLine("\t\t{");
            streamWriter.WriteLine("\t\t\tString strSpName = \"" + storedProcedurePrefix + table.Name + "Insert\";");
            streamWriter.WriteLine("\t\t\tSqlParameter[] sqlSpParaArray = new SqlParameter[" + table.Columns.Count.ToString() + "];");

            // 创建参数
            streamWriter.WriteLine("\t\t\t// 创建参数");
            for (int i = 0; i < table.Columns.Count; i++)
            {
                Column column = (Column)table.Columns[i];
                streamWriter.WriteLine("\t\t\t" + "sqlSpParaArray[" + i.ToString() + "] =" + Utility.CreateSqlParameterNoCommand(table, column, true) + ";");
            }
            streamWriter.WriteLine("\t\t\t" + "DataProvider.Instance.ExecuteSp(strSpName,sqlSpParaArray);");
            streamWriter.WriteLine("");

            streamWriter.WriteLine("\t\t}");
        }
コード例 #3
0
        /// <summary>
        /// 创建集合类
        /// </summary>
        /// <param name="table">表对象</param>
        /// <param name="streamWriter">写入文件流</param>
        private static void CreateCollectionClass(Table table, StreamWriter streamWriter)
        {
            string className = Utility.FormatPascal(table.ProgrammaticAlias);

            streamWriter.WriteLine("\t/// <summary>");
            streamWriter.WriteLine("\t/// " + className + "集合类。");
            streamWriter.WriteLine("\t/// </summary>");
            streamWriter.WriteLine("\t[Serializable]");
            streamWriter.WriteLine("\tpublic class " + className + "Collection : ArrayList");
            streamWriter.WriteLine("\t{");
            streamWriter.WriteLine("\t\tpublic new " + className + " this[int index]");
            streamWriter.WriteLine("\t\t{");
            streamWriter.WriteLine("\t\t\tget{return (" + className + ")base[index];}");
            streamWriter.WriteLine("\t\t\tset{base[index] = value;}");
            streamWriter.WriteLine("\t\t}");
            streamWriter.WriteLine("\t}");
        }
コード例 #4
0
        /// <summary>
        /// 创建根据Key删除方法
        /// </summary>
        /// <param name="table">表对象</param>
        /// <param name="storedProcedurePrefix">存储过程前缀</param>
        /// <param name="streamWriter">写入文件流</param>
        private static void CreateDeleteMethod(Table table, string storedProcedurePrefix, StreamWriter streamWriter)
        {
            if (table.PrimaryKeys.Count > 0)
            {
                // 插入空行
                streamWriter.WriteLine();
                streamWriter.WriteLine();

                // 创建根据Key删除方法
                // 方法头
                streamWriter.WriteLine("\t\t/// <summary>");
                streamWriter.WriteLine("\t\t/// 通过主键删除 " + table.Name + "记录");
                streamWriter.WriteLine("\t\t/// </summary>");

                streamWriter.Write("\t\tpublic static void Delete(");
                for (int i = 0; i < table.PrimaryKeys.Count; i++)
                {
                    Column column = (Column)table.PrimaryKeys[i];
                    if (i != table.PrimaryKeys.Count - 1)
                    {
                        streamWriter.Write(Utility.CreateMethodParameter(column) + ", ");
                    }
                    else
                    {
                        streamWriter.Write(Utility.CreateMethodParameter(column));
                    }
                }
                streamWriter.Write(")");
                streamWriter.WriteLine("\t\t{");

                streamWriter.WriteLine("\t\t\tString strSpName = " + "\"" + storedProcedurePrefix + table.Name + "Delete\";");
                streamWriter.WriteLine("\t\t\tSqlParameter[] sqlSpParaArray = new SqlParameter[" + (table.PrimaryKeys.Count).ToString() + "];");
                for (int i = 0; i < table.PrimaryKeys.Count; i++)
                {
                    Column column = (Column)table.PrimaryKeys[i];
                    streamWriter.WriteLine("\t\t\tsqlSpParaArray[" + i.ToString() + "] = new SqlParameter(\"@" +
                                           Utility.FormatPascal(column.ProgrammaticAlias) + "\", " + Utility.FormatCamel(column.ProgrammaticAlias) + ");");
                }

                streamWriter.WriteLine("\t\t\tDataProvider.Instance.ExecuteSp(strSpName,sqlSpParaArray);");

                // Append the method footer
                streamWriter.WriteLine("\t\t}");
            }
        }
コード例 #5
0
        /// <summary>
        /// 创建Model类
        /// </summary>
        /// <param name="dataTable">表对象</param>
        /// <param name="path">类文件路径</param>
        internal static void CreateModelClass(DataTable dataTable, string tablemark, string path)
        {
            string className       = dataTable.TableName.ToString() + "Entity";
            string targetNamespace = "Taotaole.Model";

            //创建类文件
            StreamWriter streamWriter = new StreamWriter(path + className + ".cs");

            // 创建 class头
            streamWriter.WriteLine("using System;");
            streamWriter.WriteLine("using System.Data;");
            streamWriter.WriteLine("using System.Collections;");
            streamWriter.WriteLine();
            streamWriter.WriteLine("namespace " + targetNamespace + " {");

            streamWriter.WriteLine("\t/// <summary>");
            streamWriter.WriteLine("\t/// " + tablemark + "-实体类");//管理员-实体类
            streamWriter.WriteLine("\t/// </summary>");
            streamWriter.WriteLine("\t[Serializable]");
            streamWriter.WriteLine("\tpublic  class " + className + " {");
            streamWriter.WriteLine();

            //定义每列数据库字段名
            streamWriter.WriteLine("\t\t#region 字段名");
            for (int i = 0; i < dataTable.Columns.Count; i++)
            {
                DataColumn column = dataTable.Columns[i];
                streamWriter.WriteLine("\t\tpublic static string Field" + Utility.FormatPascal(column.ColumnName) + " = \"" + Utility.FormatPascal(column.ColumnName) + "\";");
            }
            streamWriter.WriteLine("\t\t#endregion");
            streamWriter.WriteLine();

            //为每列创建属性
            streamWriter.WriteLine("\t\t#region 属性");
            string privateName, publicName;

            for (int i = 0; i < dataTable.Columns.Count; i++)
            {
                DataColumn column = dataTable.Columns[i];
                privateName = "_" + Utility.FormatCamel(column.ColumnName);
                publicName  = Utility.FormatPascal(column.ColumnName);

                streamWriter.WriteLine("\t\tprivate " + Utility.GetClassType(column.DataType.Name) + " " + privateName + ";");
                streamWriter.WriteLine("\t\tpublic " + Utility.GetClassType(column.DataType.Name) + " " + publicName);
                streamWriter.WriteLine("\t\t{");
                streamWriter.WriteLine("\t\t\tget{ return " + privateName + ";}");
                streamWriter.WriteLine("\t\t\tset{ " + privateName + "=value;}");
                streamWriter.WriteLine("\t\t}");
            }
            streamWriter.WriteLine("\t\t#endregion");
            streamWriter.WriteLine();

            //添加构造函数
            streamWriter.WriteLine("\t\t#region 构造函数");
            streamWriter.WriteLine("\t\tpublic " + className + "(){}");

            streamWriter.WriteLine();

            streamWriter.WriteLine("\t\tpublic " + className + "(DataRow dr)");
            streamWriter.WriteLine("\t\t{");
            for (int i = 0; i < dataTable.Columns.Count; i++)
            {
                DataColumn column = dataTable.Columns[i];
                streamWriter.WriteLine("\t\t\tif (dr[Field" + Utility.FormatPascal(column.ColumnName) + "] != DBNull.Value)");
                streamWriter.WriteLine("\t\t\t{");
                streamWriter.WriteLine("\t\t\t_" + Utility.FormatCamel(column.ColumnName) + " = (" + Utility.GetClassType(column.DataType.Name) + ")dr[Field" + Utility.FormatPascal(column.ColumnName) + "];");
                streamWriter.WriteLine("\t\t\t}");
            }
            streamWriter.WriteLine("\t\t}");

            streamWriter.WriteLine("\t\t#endregion");

            streamWriter.WriteLine();

            streamWriter.WriteLine("\t}");

            //创建集合类
            //CreateCollectionClass(table, streamWriter);

            streamWriter.WriteLine("}");

            streamWriter.Flush();
            streamWriter.Close();
        }
コード例 #6
0
        /// <summary>
        /// 创建Dal类
        /// </summary>
        /// <param name="dataTable">表对象</param>
        /// <param name="path">类文件路径</param>
        internal static void CreateDalClass(DataTable dataTable, string tablemark, string keyname, string path, DataTable dtField)
        {
            string tableName       = dataTable.TableName.ToString();
            string className       = dataTable.TableName.ToString() + "Manager";
            string targetNamespace = "Taotaole.Dal";

            //创建类文件
            StreamWriter streamWriter = new StreamWriter(path + className + ".cs");

            // 创建 class头
            streamWriter.WriteLine("using System;");
            streamWriter.WriteLine("using System.Collections.Generic;");
            streamWriter.WriteLine("using System.Data;");
            streamWriter.WriteLine("using System.Data.SqlClient;");
            streamWriter.WriteLine("using System.Linq;");
            streamWriter.WriteLine("using System.Text;");
            streamWriter.WriteLine("using Taotaole.Model;");
            streamWriter.WriteLine("using YH.DataAccess;");
            streamWriter.WriteLine("using YH.Utility;");
            streamWriter.WriteLine();
            streamWriter.WriteLine("namespace " + targetNamespace + "");
            streamWriter.WriteLine("{");

            streamWriter.WriteLine("\t/// <summary>");
            streamWriter.WriteLine("\t/// " + tablemark + "-数据库操作类");
            streamWriter.WriteLine("\t/// </summary>");
            streamWriter.WriteLine("\tpublic class " + className + "");
            streamWriter.WriteLine("\t{");

            streamWriter.WriteLine("\t\tprivate readonly static string dbServerName = null; //数据库服务名,为空时调用主服务器");
            streamWriter.WriteLine();

            //根据主键查询数据集
            streamWriter.WriteLine("\t\t/// <summary>");
            streamWriter.WriteLine("\t\t/// 根据主键查询数据集");
            streamWriter.WriteLine("\t\t/// </summary>");
            streamWriter.WriteLine("\t\tpublic static DataTable LoadData(int ID)");
            streamWriter.WriteLine("\t\t{");
            streamWriter.WriteLine("\t\t\tstring selectSql = string.Format(@\"Select * From " + tableName + " Where " + keyname + "={0}\", ID);");
            streamWriter.WriteLine("\t\t\tDataSet ds = DataAccessFactory.GetDataProvider(dbServerName).GetDataset(selectSql);");
            streamWriter.WriteLine("\t\t\tds.Tables[0].TableName = \"" + tableName + "\";");
            streamWriter.WriteLine("\t\t\tds.Tables[0].PrimaryKey = new DataColumn[] { ds.Tables[0].Columns[\"" + keyname + "\"] };");
            streamWriter.WriteLine("\t\t\treturn ds.Tables[0];");
            streamWriter.WriteLine("\t\t}");
            streamWriter.WriteLine();

            //根据主键查询数据实体
            streamWriter.WriteLine("\t\t/// <summary>");
            streamWriter.WriteLine("\t\t/// 根据主键查询数据实体");
            streamWriter.WriteLine("\t\t/// </summary>");
            streamWriter.WriteLine("\t\tpublic static " + tableName + "Entity LoadEntity(int ID)");
            streamWriter.WriteLine("\t\t{");
            streamWriter.WriteLine("\t\t\tstring selectSql = string.Format(@\"Select * From " + tableName + " Where " + keyname + "={0}\", ID);");
            streamWriter.WriteLine("\t\t\tusing (IDataReader reader = DataAccessFactory.GetDataProvider(dbServerName).GetReader(selectSql))");
            streamWriter.WriteLine("\t\t\t{");
            streamWriter.WriteLine("\t\t\t\treturn ReaderConvert.ReaderToModel<" + tableName + "Entity>(reader);");
            streamWriter.WriteLine("\t\t\t}");
            streamWriter.WriteLine("\t\t}");
            streamWriter.WriteLine();

            //根据条件查询数据集
            streamWriter.WriteLine("\t\t/// <summary>");
            streamWriter.WriteLine("\t\t/// 根据条件查询数据集");
            streamWriter.WriteLine("\t\t/// </summary>");
            streamWriter.WriteLine("\t\tpublic static DataTable SelectListData(string where = null, string selectFields =\"*\", string orderby = null, int top = 0)");
            streamWriter.WriteLine("\t\t{");
            streamWriter.WriteLine("\t\t\tif (!string.IsNullOrEmpty(where)) where = \" Where \" + where;");
            streamWriter.WriteLine("\t\t\tstring selectSql = string.Format(@\"Select {2} {1} From " + tableName + " {0}\", where, selectFields, top == 0 ? \"\" : \"top \" + top);");
            streamWriter.WriteLine("\t\t\tif (!string.IsNullOrEmpty(orderby)) selectSql += \" Order By \" + orderby;");
            streamWriter.WriteLine("\t\t\tDataSet ds = DataAccessFactory.GetDataProvider(dbServerName).GetDataset(selectSql);");
            streamWriter.WriteLine("\t\t\tds.Tables[0].TableName = \"" + tableName + "\";");
            streamWriter.WriteLine("\t\t\tds.Tables[0].PrimaryKey = new DataColumn[] { ds.Tables[0].Columns[\"" + keyname + "\"] };");
            streamWriter.WriteLine("\t\t\treturn ds.Tables[0];");
            streamWriter.WriteLine("\t\t}");
            streamWriter.WriteLine();

            //根据条件查询首行首列
            streamWriter.WriteLine("\t\t/// <summary>");
            streamWriter.WriteLine("\t\t/// 根据条件查询首行首列");
            streamWriter.WriteLine("\t\t/// </summary>");
            streamWriter.WriteLine("\t\tpublic static object SelectScalar(string where = null, string selectFields =\"*\", string orderby = null)");
            streamWriter.WriteLine("\t\t{");
            streamWriter.WriteLine("\t\t\tif (!string.IsNullOrEmpty(where)) where = \" Where \" + where;");
            streamWriter.WriteLine("\t\t\tstring selectSql = string.Format(@\"Select {1} From " + tableName + " {0}\", where, selectFields);");
            streamWriter.WriteLine("\t\t\tif (!string.IsNullOrEmpty(orderby)) selectSql += \" Order By \" + orderby;");
            streamWriter.WriteLine("\t\t\treturn DataAccessFactory.GetDataProvider(dbServerName).GetScalar(selectSql);");
            streamWriter.WriteLine("\t\t}");
            streamWriter.WriteLine();

            //根据条件查询数据实体
            streamWriter.WriteLine("\t\t/// <summary>");
            streamWriter.WriteLine("\t\t/// 根据条件查询数据实体");
            streamWriter.WriteLine("\t\t/// </summary>");
            streamWriter.WriteLine("\t\tpublic static IList<" + tableName + "Entity> SelectListEntity(string where = null, string selectFields =\"*\", string orderby = null, int top = 0)");
            streamWriter.WriteLine("\t\t{");
            streamWriter.WriteLine("\t\t\tif (!string.IsNullOrEmpty(where)) where = \" Where \" + where;");
            streamWriter.WriteLine("\t\t\tstring selectSql = string.Format(@\"Select {2} {1} From " + tableName + " {0}\", where, selectFields, top == 0 ? \"\" : \"top \" + top);");
            streamWriter.WriteLine("\t\t\tif (!string.IsNullOrEmpty(orderby)) selectSql += \" Order By \" + orderby;");
            streamWriter.WriteLine("\t\t\tusing (IDataReader reader = DataAccessFactory.GetDataProvider(dbServerName).GetReader(selectSql))");
            streamWriter.WriteLine("\t\t\t{");
            streamWriter.WriteLine("\t\t\t\treturn ReaderConvert.ReaderToList<" + tableName + "Entity>(reader);");
            streamWriter.WriteLine("\t\t\t}");
            streamWriter.WriteLine("\t\t}");
            streamWriter.WriteLine();

            //根据主键删除
            streamWriter.WriteLine("\t\t/// <summary>");
            streamWriter.WriteLine("\t\t/// 根据主键删除");
            streamWriter.WriteLine("\t\t/// </summary>");
            streamWriter.WriteLine("\t\tpublic static void Del(int ID)");
            streamWriter.WriteLine("\t\t{");
            streamWriter.WriteLine("\t\t\tstring deleteSql = string.Format(@\"Delete From " + tableName + " Where " + keyname + "={0}\", ID);");
            streamWriter.WriteLine("\t\t\tDataAccessFactory.GetDataProvider(dbServerName).Execute(deleteSql);");
            streamWriter.WriteLine("\t\t}");
            streamWriter.WriteLine();

            //根据条件删除
            streamWriter.WriteLine("\t\t/// <summary>");
            streamWriter.WriteLine("\t\t/// 根据条件删除");
            streamWriter.WriteLine("\t\t/// </summary>");
            streamWriter.WriteLine("\t\tpublic static void DelListData(string where = null)");
            streamWriter.WriteLine("\t\t{");
            streamWriter.WriteLine("\t\t\tif (!string.IsNullOrEmpty(where)) where = \" Where \" + where;");
            streamWriter.WriteLine("\t\t\tstring deleteSql = string.Format(@\"Delete From " + tableName + " {0}\", where);");
            streamWriter.WriteLine("\t\t\tDataAccessFactory.GetDataProvider(dbServerName).Execute(deleteSql);");
            streamWriter.WriteLine("\t\t}");
            streamWriter.WriteLine();

            //保存数据
            string insertFields1 = "";
            string insertFields2 = "";
            string updateFields1 = "";

            //string sqlParameterFields = "";
            foreach (DataRow dr in dtField.Rows)
            {
                if (dr["name"].ToString().ToLower() == keyname.ToLower())
                {
                    continue;
                }
                insertFields1 += string.Format("{0},", dr["name"].ToString());
                insertFields2 += string.Format("@{0},", dr["name"].ToString());
                updateFields1 += string.Format("{0}=@{0},", dr["name"].ToString());
                //sqlParameterFields += string.Format("\t\t\t\tnew SqlParameter(\"@{0}\",entity.{1}),", dr["name"].ToString(), Utility.FormatPascal(dr["name"].ToString()));
            }
            insertFields1 = insertFields1.TrimEnd(',');
            insertFields2 = insertFields2.TrimEnd(',');
            updateFields1 = updateFields1.TrimEnd(',');
            //sqlParameterFields = sqlParameterFields.TrimEnd(',');
            streamWriter.WriteLine("\t\t/// <summary>");
            streamWriter.WriteLine("\t\t/// 保存数据");
            streamWriter.WriteLine("\t\t/// </summary>");
            streamWriter.WriteLine("\t\tpublic static bool SaveEntity(" + tableName + "Entity entity, bool isAdd)");
            streamWriter.WriteLine("\t\t{");
            streamWriter.WriteLine("\t\t\ttry");
            streamWriter.WriteLine("\t\t\t{");
            streamWriter.WriteLine("\t\t\t\tstring execSql = (isAdd) ?");
            streamWriter.WriteLine("\t\t\t\t\"Insert Into " + tableName + "(" + insertFields1 + ")values(" + insertFields2 + ")\" :");
            streamWriter.WriteLine("\t\t\t\t\"Update " + tableName + " Set " + updateFields1 + " Where " + keyname + "=@" + keyname + "\";");
            streamWriter.WriteLine("\t\t\t\tSqlParameter[] para = new SqlParameter[]");
            streamWriter.WriteLine("\t\t\t\t{");
            for (int i = 0; i < dtField.Rows.Count; i++)
            {
                //if (dtField.Rows[i]["name"].ToString().ToLower() == keyname.ToLower()) continue;
                string fname  = dtField.Rows[i]["name"].ToString();
                string fnameD = Utility.FormatPascal(fname);
                string hz     = (i == dtField.Rows.Count - 1) ? "" : ",";
                switch (dtField.Select(string.Format("name='{0}'", fname))[0]["name2"].ToString().ToLower())
                {
                case "tinyint":
                case "int":
                case "numeric":
                    streamWriter.WriteLine("\t\t\t\t\tnew SqlParameter(\"@" + fname + "\",entity." + fnameD + "),");
                    break;

                case "datetime":
                    streamWriter.WriteLine("\t\t\t\t\t(entity." + fnameD + "==null || entity." + fnameD + "==DateTime.MinValue)?new SqlParameter(\"@" + fname + "\",DBNull.Value):new SqlParameter(\"@" + fname + "\",entity." + fnameD + "),");
                    break;

                default:
                    streamWriter.WriteLine("\t\t\t\t\t(entity." + fnameD + "==null)?new SqlParameter(\"@" + fname + "\",DBNull.Value):new SqlParameter(\"@" + fname + "\",entity." + fnameD + "),");
                    break;
                }
            }
            streamWriter.WriteLine("\t\t\t\t};");
            streamWriter.WriteLine("\t\t\t\tDataAccessFactory.GetDataProvider(dbServerName).Execute(execSql, para);");
            streamWriter.WriteLine("\t\t\t\treturn true;");
            streamWriter.WriteLine("\t\t\t}");
            streamWriter.WriteLine("\t\t\tcatch");
            streamWriter.WriteLine("\t\t\t{");
            streamWriter.WriteLine("\t\t\t\treturn false;");
            streamWriter.WriteLine("\t\t\t}");
            streamWriter.WriteLine("\t\t}");
            streamWriter.WriteLine();


            streamWriter.WriteLine("\t}");
            streamWriter.WriteLine("}");

            streamWriter.Flush();
            streamWriter.Close();
        }
コード例 #7
0
//		/// <summary>
//		/// 创建根据条件返回分页记录的方法
//		/// </summary>
//		/// <param name="table">表对象</param>
//		/// <param name="storedProcedurePrefix">存储过程前缀.</param>
//		/// <param name="streamWriter">写入文件流</param>
//		private static void CreateSelectByPaging(Table table, string storedProcedurePrefix, StreamWriter streamWriter)
//		{
//			if (table.Columns.Count != table.PrimaryKeys.Count && table.Columns.Count != table.ForeignKeys.Count)
//			{
//
//				#region 添加按条件分页返回类对象集合方法
//				// 插入空行
//				streamWriter.WriteLine();
//				streamWriter.WriteLine();
//
//				// 方法头
//				streamWriter.WriteLine("\t\t/// <summary>");
//				streamWriter.WriteLine("\t\t/// 从 " + table.Name + " 表中根据条件获取分页记录");
//				streamWriter.WriteLine("\t\t/// </summary>");
//
//				string className = Utility.FormatPascal(table.ProgrammaticAlias);
//
//				string classCollectionName = className + "Collection";
//				string classCollection = className.ToLower() + "s";
//
//				//		create procedure pagination3
//				//		@tblname   varchar(255),       -- 表名
//				//		@strgetfields varchar(1000) = ''*'',  -- 需要返回的列
//				//		@fldname varchar(255)='''',      -- 排序的字段名
//				//		@pagesize   int = 10,          -- 页尺寸
//				//		@pageindex  int = 1,           -- 页码
//				//		@docount  int = 0,   -- 返回记录总数, 非 0 值则返回
//				//		@ordertype int = 0,  -- 设置排序类型, 非 0 值则降序
//				//		@strwhere  varchar(1500) = ''''  -- 查询条件 (注意: 不要加 where)
//
//				streamWriter.WriteLine("\t\tpublic static " + classCollectionName + " SelectPaging(string getFields, string sortField, int pageSize, int pageIndex, bool orderType, string where, ref int count){");
//				streamWriter.WriteLine("\t\t\t" +  classCollectionName + " " + classCollection + " = new " + classCollectionName + "();");
//				streamWriter.WriteLine("\t\t\tString strSpName = \"Proc_GetPagging\";");
//				streamWriter.WriteLine("\t\t\tSqlParameter[] sqlSpParaArray = new SqlParameter[8];");
//				streamWriter.WriteLine("\t\t\tsqlSpParaArray[0] = new SqlParameter(\"@tblname\", \"" + table.Name + "\");");
//				streamWriter.WriteLine("\t\t\tsqlSpParaArray[1] = new SqlParameter(\"@strgetfields\", getFields);");
//				streamWriter.WriteLine("\t\t\tsqlSpParaArray[2] = new SqlParameter(\"@fldname\", sortField);");
//				streamWriter.WriteLine("\t\t\tsqlSpParaArray[3] = new SqlParameter(\"@pagesize\", pageSize);");
//				streamWriter.WriteLine("\t\t\tsqlSpParaArray[4] = new SqlParameter(\"@pageindex\", pageIndex);");
//				streamWriter.WriteLine("\t\t\tsqlSpParaArray[5] = new SqlParameter(\"@docount\", 1);");
//				streamWriter.WriteLine("\t\t\tsqlSpParaArray[6] = new SqlParameter(\"@ordertype\", 0);");
//				streamWriter.WriteLine("\t\t\tsqlSpParaArray[7] = new SqlParameter(\"@strwhere\", where);");
//
//				streamWriter.WriteLine("\t\t\t//返回记录总数");
//				streamWriter.WriteLine("\t\t\tcount = (int)DataProvider.Instance.GetScalarBySp(strSpName, sqlSpParaArray);");
//
//
//				streamWriter.WriteLine("\t\t\tsqlSpParaArray[5] = new SqlParameter(\"@docount\", 0);");
//				streamWriter.WriteLine("\t\t\tsqlSpParaArray[6] = new SqlParameter(\"@ordertype\", orderType?1:0);");
//
//				streamWriter.WriteLine("\t\t\t//返回记录");
//				streamWriter.WriteLine("\t\t\tSqlDataReader reader = (SqlDataReader)DataProvider.Instance.GetReaderBySp(strSpName, sqlSpParaArray);");
//				streamWriter.WriteLine("\t\t\ttry");
//				streamWriter.WriteLine("\t\t\t{");
//				streamWriter.WriteLine("\t\t\t\twhile (reader.Read())");
//				streamWriter.WriteLine("\t\t\t\t{");
//				streamWriter.WriteLine("\t\t\t\t\t" + className + " " + className.ToLower() + " = new " + className + "();");
//				streamWriter.WriteLine("\t\t\t\t\t" + "DataProvider.Instance.SetReaderToObject(reader, " + className.ToLower() + " );");
//				streamWriter.WriteLine("\t\t\t\t\t" + classCollection + ".Add(" + className.ToLower() + ");");
//				streamWriter.WriteLine("\t\t\t\t}");
//				streamWriter.WriteLine("\t\t\t}");
//				streamWriter.WriteLine("\t\t\tfinally");
//				streamWriter.WriteLine("\t\t\t{");
//				streamWriter.WriteLine("\t\t\t\t" + "if (!reader.IsClosed)");
//				streamWriter.WriteLine("\t\t\t\t{");
//				streamWriter.WriteLine("\t\t\t\t\t" + "reader.Close();");
//				streamWriter.WriteLine("\t\t\t\t}");
//				streamWriter.WriteLine("\t\t\t}");
//				streamWriter.WriteLine("\t\t\treturn " + classCollection + ";");
//
//				// Append the method footer
//				streamWriter.WriteLine("\t\t}");
//
//				#endregion
//
//				#region 添加按条件分页返回DataSet方法
//				// 插入空行
//				streamWriter.WriteLine();
//				streamWriter.WriteLine();
//
//				// 方法头
//				streamWriter.WriteLine("\t\t/// <summary>");
//				streamWriter.WriteLine("\t\t/// 从 " + table.Name + " 表中根据条件获取分页记录,返回DataSet");
//				streamWriter.WriteLine("\t\t/// </summary>");
//
//				streamWriter.WriteLine("\t\tpublic static DataSet " + " SelectPagingDataSet(string getFields, string sortField, int pageSize, int pageIndex, bool orderType, string where, ref int count){");
//				streamWriter.WriteLine("\t\t\tString strSpName = \"Proc_GetPagging\";");
//				streamWriter.WriteLine("\t\t\tSqlParameter[] sqlSpParaArray = new SqlParameter[8];");
//				streamWriter.WriteLine("\t\t\tsqlSpParaArray[0] = new SqlParameter(\"@tblname\", \"" + table.Name + "\");");
//				streamWriter.WriteLine("\t\t\tsqlSpParaArray[1] = new SqlParameter(\"@strgetfields\", getFields);");
//				streamWriter.WriteLine("\t\t\tsqlSpParaArray[2] = new SqlParameter(\"@fldname\", sortField);");
//				streamWriter.WriteLine("\t\t\tsqlSpParaArray[3] = new SqlParameter(\"@pagesize\", pageSize);");
//				streamWriter.WriteLine("\t\t\tsqlSpParaArray[4] = new SqlParameter(\"@pageindex\", pageIndex);");
//				streamWriter.WriteLine("\t\t\tsqlSpParaArray[5] = new SqlParameter(\"@docount\", 1);");
//				streamWriter.WriteLine("\t\t\tsqlSpParaArray[6] = new SqlParameter(\"@ordertype\", 0);");
//				streamWriter.WriteLine("\t\t\tsqlSpParaArray[7] = new SqlParameter(\"@strwhere\", where);");
//
//				streamWriter.WriteLine("\t\t\t//返回记录总数");
//				streamWriter.WriteLine("\t\t\tcount = (int)DataProvider.Instance.GetScalarBySp(strSpName, sqlSpParaArray);");
//
//
//				streamWriter.WriteLine("\t\t\tsqlSpParaArray[5] = new SqlParameter(\"@docount\", 0);");
//				streamWriter.WriteLine("\t\t\tsqlSpParaArray[6] = new SqlParameter(\"@ordertype\", orderType?1:0);");
//
//				streamWriter.WriteLine("\t\t\t//返回记录");
//				streamWriter.WriteLine("\t\t\tDataSet ds = DataProvider.Instance.GetDatasetBySp(strSpName, sqlSpParaArray);");
//				streamWriter.WriteLine("\t\t\treturn ds;");
//				// Append the method footer
//				streamWriter.WriteLine("\t\t}");
//				#endregion
//			}
//		}
        #endregion

        #region new SelectByPaging
        /// <summary>
        /// 创建根据条件返回分页记录的方法
        /// </summary>
        /// <param name="table">表对象</param>
        /// <param name="storedProcedurePrefix">存储过程前缀.</param>
        /// <param name="streamWriter">写入文件流</param>
        private static void CreateSelectByPaging(Table table, string storedProcedurePrefix, StreamWriter streamWriter)
        {
            if (table.Columns.Count != table.PrimaryKeys.Count && table.Columns.Count != table.ForeignKeys.Count)
            {
                #region 添加按条件分页返回类对象集合方法
                // 插入空行
                streamWriter.WriteLine();
                streamWriter.WriteLine();

                // 方法头
                streamWriter.WriteLine("\t\t/// <summary>");
                streamWriter.WriteLine("\t\t/// 从 " + table.Name + " 表中根据条件获取分页记录");
                streamWriter.WriteLine("\t\t/// </summary>");

                string className = Utility.FormatPascal(table.ProgrammaticAlias);

                string classCollectionName = className + "Collection";
                string classCollection     = className.ToLower() + "s";

                //		create procedure pagination3
                //		@tblname   varchar(255),       -- 表名
                //		@strgetfields varchar(1000) = ''*'',  -- 需要返回的列
                //		@fldname varchar(255)='''',      -- 排序的字段名
                //		@pagesize   int = 10,          -- 页尺寸
                //		@pageindex  int = 1,           -- 页码
                //		@docount  int = 0,   -- 返回记录总数, 非 0 值则返回
                //		@ordertype int = 0,  -- 设置排序类型, 非 0 值则降序
                //		@strwhere  varchar(1500) = ''''  -- 查询条件 (注意: 不要加 where)

                streamWriter.WriteLine("\t\tpublic static " + classCollectionName + " SelectPaging(string getFields, string sortField, int pageSize, int pageIndex, string where, ref int count){");
                streamWriter.WriteLine("\t\t\t" + classCollectionName + " " + classCollection + " = new " + classCollectionName + "();");
                streamWriter.WriteLine("\t\t\tString strSpName = \"Proc_GetPagging\";");
                streamWriter.WriteLine("\t\t\tSqlParameter[] sqlSpParaArray = new SqlParameter[6];");
                streamWriter.WriteLine("\t\t\tsqlSpParaArray[0] = new SqlParameter(\"@tblname\", \"" + table.Name + "\");");
                streamWriter.WriteLine("\t\t\tsqlSpParaArray[1] = new SqlParameter(\"@strgetfields\", getFields);");
                streamWriter.WriteLine("\t\t\tsqlSpParaArray[2] = new SqlParameter(\"@fldname\", sortField);");
                streamWriter.WriteLine("\t\t\tsqlSpParaArray[3] = new SqlParameter(\"@pagesize\", pageSize);");
                streamWriter.WriteLine("\t\t\tsqlSpParaArray[4] = new SqlParameter(\"@pageindex\", pageIndex);");
                streamWriter.WriteLine("\t\t\tsqlSpParaArray[5] = new SqlParameter(\"@strwhere\", where);");

                streamWriter.WriteLine("\t\t\t//返回记录");
                streamWriter.WriteLine("\t\t\tDataSet ds = DataProvider.Instance.GetDatasetBySp(strSpName, sqlSpParaArray);");
                streamWriter.WriteLine("\t\t\t//返回记录总数");
                streamWriter.WriteLine("\t\t\tcount = (int)ds.Tables[1].Rows[0][0];");


                streamWriter.WriteLine("\t\t\t\tforeach(DataRow row in ds.Tables[0].Rows)");
                streamWriter.WriteLine("\t\t\t\t{");
                streamWriter.WriteLine("\t\t\t\t\t" + className + " " + className.ToLower() + " = new " + className + "(row);");
                streamWriter.WriteLine("\t\t\t\t\t" + classCollection + ".Add(" + className.ToLower() + ");");
                streamWriter.WriteLine("\t\t\t\t}");
                streamWriter.WriteLine("\t\t\treturn " + classCollection + ";");

                // Append the method footer
                streamWriter.WriteLine("\t\t}");

                #endregion

                #region 添加按条件分页返回DataSet方法
                // 插入空行
                streamWriter.WriteLine();
                streamWriter.WriteLine();

                // 方法头
                streamWriter.WriteLine("\t\t/// <summary>");
                streamWriter.WriteLine("\t\t/// 从 " + table.Name + " 表中根据条件获取分页记录,返回DataSet");
                streamWriter.WriteLine("\t\t/// </summary>");

                streamWriter.WriteLine("\t\tpublic static DataSet " + " SelectPagingDataSet(string getFields, string sortField, int pageSize, int pageIndex,  string where, ref int count){");
                streamWriter.WriteLine("\t\t\tString strSpName = \"Proc_GetPagging\";");
                streamWriter.WriteLine("\t\t\tSqlParameter[] sqlSpParaArray = new SqlParameter[6];");
                streamWriter.WriteLine("\t\t\tsqlSpParaArray[0] = new SqlParameter(\"@tblname\", \"" + table.Name + "\");");
                streamWriter.WriteLine("\t\t\tsqlSpParaArray[1] = new SqlParameter(\"@strgetfields\", getFields);");
                streamWriter.WriteLine("\t\t\tsqlSpParaArray[2] = new SqlParameter(\"@fldname\", sortField);");
                streamWriter.WriteLine("\t\t\tsqlSpParaArray[3] = new SqlParameter(\"@pagesize\", pageSize);");
                streamWriter.WriteLine("\t\t\tsqlSpParaArray[4] = new SqlParameter(\"@pageindex\", pageIndex);");
                streamWriter.WriteLine("\t\t\tsqlSpParaArray[5] = new SqlParameter(\"@strwhere\", where);");

                streamWriter.WriteLine("\t\t\t//返回记录");
                streamWriter.WriteLine("\t\t\tDataSet ds = DataProvider.Instance.GetDatasetBySp(strSpName, sqlSpParaArray);");
                streamWriter.WriteLine("\t\t\t//返回记录总数");
                streamWriter.WriteLine("\t\t\tcount = (int)ds.Tables[1].Rows[0][0];");

                streamWriter.WriteLine("\t\t\treturn ds;");
                // Append the method footer
                streamWriter.WriteLine("\t\t}");
                #endregion
            }
        }
コード例 #8
0
        /// <summary>
        /// 创建根据条件返回记录的方法
        /// </summary>
        /// <param name="table">表对象</param>
        /// <param name="storedProcedurePrefix">存储过程前缀.</param>
        /// <param name="streamWriter">写入文件流</param>
        private static void CreateSelectByWhereMethod(Table table, string storedProcedurePrefix, StreamWriter streamWriter)
        {
            if (table.Columns.Count != table.PrimaryKeys.Count && table.Columns.Count != table.ForeignKeys.Count)
            {
                #region 添加根据Where返回类对象方法
                // 插入空行
                streamWriter.WriteLine();
                streamWriter.WriteLine();

                // 方法头
                streamWriter.WriteLine("\t\t/// <summary>");
                streamWriter.WriteLine("\t\t/// 从 " + table.Name + " 表中获取所有记录");
                streamWriter.WriteLine("\t\t/// </summary>");

                string className = Utility.FormatPascal(table.ProgrammaticAlias);

                string classCollectionName = className + "Collection";
                string classCollection     = className.ToLower() + "s";

                streamWriter.WriteLine("\t\tpublic static " + classCollectionName + " SelectWhere(string where){");
                streamWriter.WriteLine("\t\t\t" + classCollectionName + " " + classCollection + " = new " + classCollectionName + "();");
                streamWriter.WriteLine("\t\t\t" + "String selectSql = \"select * from " + table.Name + "\";");
                streamWriter.WriteLine("\t\t\t" + "if (where != string.Empty) selectSql += \" Where \" + where; ");
                streamWriter.WriteLine("\t\t\t" + "SqlDataReader reader = (SqlDataReader)DataProvider.Instance.GetReader(selectSql);");

                streamWriter.WriteLine("\t\t\ttry");
                streamWriter.WriteLine("\t\t\t{");
                streamWriter.WriteLine("\t\t\t\twhile (reader.Read())");
                streamWriter.WriteLine("\t\t\t\t{");
                streamWriter.WriteLine("\t\t\t\t\t" + className + " " + className.ToLower() + " = new " + className + "();");
                streamWriter.WriteLine("\t\t\t\t\t" + "DataProvider.Instance.SetReaderToObject(reader, " + className.ToLower() + " );");
                streamWriter.WriteLine("\t\t\t\t\t" + classCollection + ".Add(" + className.ToLower() + ");");
                streamWriter.WriteLine("\t\t\t\t}");
                streamWriter.WriteLine("\t\t\t}");
                streamWriter.WriteLine("\t\t\tfinally");
                streamWriter.WriteLine("\t\t\t{");
                streamWriter.WriteLine("\t\t\t\t" + "if (!reader.IsClosed)");
                streamWriter.WriteLine("\t\t\t\t{");
                streamWriter.WriteLine("\t\t\t\t\t" + "reader.Close();");
                streamWriter.WriteLine("\t\t\t\t}");
                streamWriter.WriteLine("\t\t\t}");
                streamWriter.WriteLine("\t\t\treturn " + classCollection + ";");
                // Append the method footer
                streamWriter.WriteLine("\t\t}");

                streamWriter.WriteLine();
                streamWriter.WriteLine();
                #endregion

                #region 添加根据Where返回DataSet方法
                // 插入空行
                streamWriter.WriteLine();
                streamWriter.WriteLine();

                // 方法头
                streamWriter.WriteLine("\t\t/// <summary>");
                streamWriter.WriteLine("\t\t/// 从 " + table.Name + " 表中获取所有记录,返回DataSet");
                streamWriter.WriteLine("\t\t/// </summary>");

                streamWriter.WriteLine("\t\tpublic static DataSet " + " SelectWhereDataSet(string where){");
                streamWriter.WriteLine("\t\t\t" + "String selectSql = \"select * from " + table.Name + "\";");
                streamWriter.WriteLine("\t\t\t" + "if (where != string.Empty) selectSql += \" Where \" + where; ");
                streamWriter.WriteLine("\t\t\t" + "DataSet ds = DataProvider.Instance.GetDataset(selectSql);");
                streamWriter.WriteLine("\t\t\t" + "return ds;");
                // Append the method footer
                streamWriter.WriteLine("\t\t}");

                streamWriter.WriteLine();
                streamWriter.WriteLine();
                #endregion
            }
        }
コード例 #9
0
        /// <summary>
        /// 创建根据主键获取对象方法
        /// </summary>
        /// <param name="table">表对象</param>
        /// <param name="storedProcedurePrefix">存储过程前缀.</param>
        /// <param name="streamWriter">写入文件流</param>
        private static void CreateSelectMethod(Table table, string storedProcedurePrefix, StreamWriter streamWriter)
        {
            if (table.PrimaryKeys.Count > 0 && table.Columns.Count != table.ForeignKeys.Count)
            {
                #region 添加根据主键返回类对象方法
                // 插入空行
                streamWriter.WriteLine();
                streamWriter.WriteLine();

                // 方法头
                streamWriter.WriteLine("\t\t/// <summary>");
                streamWriter.WriteLine("\t\t/// 根据主键从 " + table.Name + " 表中获取单个记录");
                streamWriter.WriteLine("\t\t/// </summary>");

                string className = Utility.FormatPascal(table.ProgrammaticAlias);

                streamWriter.Write("\t\tpublic static " + className + " Get(");
                for (int i = 0; i < table.PrimaryKeys.Count; i++)
                {
                    Column column = (Column)table.PrimaryKeys[i];
                    if (i != table.PrimaryKeys.Count - 1)
                    {
                        streamWriter.Write(Utility.CreateMethodParameter(column) + ", ");
                    }
                    else
                    {
                        streamWriter.Write(Utility.CreateMethodParameter(column));
                    }
                }
                streamWriter.Write(")");
                streamWriter.WriteLine("\t\t{");
                streamWriter.WriteLine("\t\t\t" + className + " " + className.ToLower() + " = new " + className + "();");
                streamWriter.WriteLine("\t\t\tString strSpName = " + "\"" + storedProcedurePrefix + table.Name + "Select\";");
                streamWriter.WriteLine("\t\t\tSqlParameter[] sqlSpParaArray = new SqlParameter[" + (table.PrimaryKeys.Count).ToString() + "];");
                for (int i = 0; i < table.PrimaryKeys.Count; i++)
                {
                    Column column = (Column)table.PrimaryKeys[i];
                    streamWriter.WriteLine("\t\t\tsqlSpParaArray[" + i.ToString() + "] = new SqlParameter(\"@" +
                                           Utility.FormatPascal(column.ProgrammaticAlias) + "\", " + Utility.FormatCamel(column.ProgrammaticAlias) + ");");
                }

                streamWriter.WriteLine("\t\t\tSqlDataReader reader = (SqlDataReader)DataProvider.Instance.GetReaderBySp(strSpName,sqlSpParaArray);");
                streamWriter.WriteLine("\t\t\ttry");
                streamWriter.WriteLine("\t\t\t{");
                streamWriter.WriteLine("\t\t\t\tif(reader.HasRows)");
                streamWriter.WriteLine("\t\t\t\t{");
                streamWriter.WriteLine("\t\t\t\t\treader.Read();");
                streamWriter.WriteLine("\t\t\t\t\tDataProvider.Instance.SetReaderToObject(reader, " + className.ToLower() + ");");
                streamWriter.WriteLine("\t\t\t\t}");
                streamWriter.WriteLine("\t\t\t}");
                streamWriter.WriteLine("\t\t\tfinally");
                streamWriter.WriteLine("\t\t\t{");
                streamWriter.WriteLine("\t\t\t\tif (!reader.IsClosed)");
                streamWriter.WriteLine("\t\t\t\t{");
                streamWriter.WriteLine("\t\t\t\t\treader.Close();");
                streamWriter.WriteLine("\t\t\t\t}");
                streamWriter.WriteLine("\t\t\t}");
                streamWriter.WriteLine("\t\t\treturn " + className.ToLower() + ";");
                streamWriter.WriteLine("\t\t}");

                #endregion

                #region 添加根据主键返回DataSet方法
                // 插入空行
                streamWriter.WriteLine();
                streamWriter.WriteLine();

                // 方法头
                streamWriter.WriteLine("\t\t/// <summary>");
                streamWriter.WriteLine("\t\t/// 根据主键从 " + table.Name + " 表中获取单个记录,返回DataSet");
                streamWriter.WriteLine("\t\t/// </summary>");

//				string className = Utility.FormatPascal(table.ProgrammaticAlias);

                streamWriter.Write("\t\tpublic static DataSet " + " GetDataSet(");
                for (int i = 0; i < table.PrimaryKeys.Count; i++)
                {
                    Column column = (Column)table.PrimaryKeys[i];
                    if (i != table.PrimaryKeys.Count - 1)
                    {
                        streamWriter.Write(Utility.CreateMethodParameter(column) + ", ");
                    }
                    else
                    {
                        streamWriter.Write(Utility.CreateMethodParameter(column));
                    }
                }
                streamWriter.Write(")");
                streamWriter.WriteLine("\t\t{");
                streamWriter.WriteLine("\t\t\t" + className + " " + className.ToLower() + " = new " + className + "();");
                streamWriter.WriteLine("\t\t\tString strSpName = " + "\"" + storedProcedurePrefix + table.Name + "Select\";");
                streamWriter.WriteLine("\t\t\tSqlParameter[] sqlSpParaArray = new SqlParameter[" + (table.PrimaryKeys.Count).ToString() + "];");
                for (int i = 0; i < table.PrimaryKeys.Count; i++)
                {
                    Column column = (Column)table.PrimaryKeys[i];
                    streamWriter.WriteLine("\t\t\tsqlSpParaArray[" + i.ToString() + "] = new SqlParameter(\"@" +
                                           Utility.FormatPascal(column.ProgrammaticAlias) + "\", " + Utility.FormatCamel(column.ProgrammaticAlias) + ");");
                }
                streamWriter.WriteLine("\t\t\tDataSet ds = DataProvider.Instance.GetDatasetBySp(strSpName, sqlSpParaArray);");
                streamWriter.WriteLine("\t\t\treturn ds;");
                streamWriter.WriteLine("\t\t}");
                streamWriter.WriteLine();

                #endregion
            }
        }
コード例 #10
0
        /// <summary>
        /// 创建根据外键删除的方法
        /// </summary>
        /// <param name="table">表对象</param>
        /// <param name="storedProcedurePrefix">存储过程前缀.</param>
        /// <param name="streamWriter">写入文件流</param>
        private static void CreateDeleteByMethods(Table table, string storedProcedurePrefix, StreamWriter streamWriter)
        {
            // 根据每个外键创建删除方法
            foreach (ArrayList compositeKeyList in table.ForeignKeys.Values)
            {
                // 插入空行
                streamWriter.WriteLine();
                streamWriter.WriteLine();

                // 设置存储过程名
                StringBuilder stringBuilder = new StringBuilder(255);
                stringBuilder.Append(storedProcedurePrefix + table.Name + "DeleteAllBy");
                for (int i = 0; i < compositeKeyList.Count; i++)
                {
                    Column column = (Column)compositeKeyList[i];

                    if (i > 0)
                    {
                        stringBuilder.Append("_" + Utility.FormatPascal(column.Name));
                    }
                    else
                    {
                        stringBuilder.Append(Utility.FormatPascal(column.Name));
                    }
                }
                string procedureName = stringBuilder.ToString();

                // 设置方法名
                stringBuilder = new StringBuilder(255);
                stringBuilder.Append("DeleteAllBy");
                for (int i = 0; i < compositeKeyList.Count; i++)
                {
                    Column column = (Column)compositeKeyList[i];

                    if (i > 0)
                    {
                        stringBuilder.Append("_" + Utility.FormatPascal(column.ProgrammaticAlias));
                    }
                    else
                    {
                        stringBuilder.Append(Utility.FormatPascal(column.ProgrammaticAlias));
                    }
                }
                string methodName = stringBuilder.ToString();

                // 创建根据外键删除功能
                // 方法头
                streamWriter.WriteLine("\t\t/// <summary>");
                streamWriter.WriteLine("\t\t/// 根据外键删除 " + table.Name + " 表中记录");
                streamWriter.WriteLine("\t\t/// </summary>");

                streamWriter.Write("\t\tpublic static void " + methodName + "(");
                for (int i = 0; i < compositeKeyList.Count; i++)
                {
                    Column column = (Column)compositeKeyList[i];
                    if (i != compositeKeyList.Count - 1)
                    {
                        streamWriter.Write(Utility.CreateMethodParameter(column) + ", ");
                    }
                    else
                    {
                        streamWriter.Write(Utility.CreateMethodParameter(column));
                    }
                }
                streamWriter.Write(")");
                streamWriter.WriteLine("\t\t{");

                streamWriter.WriteLine("\t\t\tString strSpName = " + "\"" + procedureName + "\";");
                streamWriter.WriteLine("\t\t\tSqlParameter[] sqlSpParaArray = new SqlParameter[" + (compositeKeyList.Count).ToString() + "];");
                for (int i = 0; i < compositeKeyList.Count; i++)
                {
                    Column column = (Column)compositeKeyList[i];
                    streamWriter.WriteLine("\t\t\tsqlSpParaArray[" + i.ToString() + "] = new SqlParameter(\"@" +
                                           Utility.FormatPascal(column.ProgrammaticAlias) + "\", " + Utility.FormatCamel(column.ProgrammaticAlias) + ");");
                }

                streamWriter.WriteLine("\t\t\tDataProvider.Instance.ExecuteSp(strSpName,sqlSpParaArray);");

                // Append the method footer
                streamWriter.WriteLine("\t\t}");
            }
        }
コード例 #11
0
        /// <summary>
        /// 创建Module类
        /// </summary>
        /// <param name="table">表对象</param>
        /// <param name="storedProcedurePrefix">存储过程前缀</param>
        /// <param name="path">类文件路径</param>
        internal static void CreateComponentClass(Table table, string targetNamespace, string storedProcedurePrefix, string path)
        {
//			string className = Utility.FormatPascal(table.Name);
            string className = Utility.FormatPascal(table.ProgrammaticAlias);

            //创建类文件
            StreamWriter streamWriter = new StreamWriter(path + className + ".cs");

            // 创建 class头
            streamWriter.WriteLine("using System;");
            streamWriter.WriteLine("using System.Data;");
            streamWriter.WriteLine("using System.Collections;");
            streamWriter.WriteLine();
            if (targetNamespace.Length > 0)
            {
                streamWriter.WriteLine("namespace " + targetNamespace + ".Component {");
            }
            else
            {
                streamWriter.WriteLine("namespace Component {");
            }

            streamWriter.WriteLine("\t/// <summary>");
            streamWriter.WriteLine("\t/// " + className + "类");
            streamWriter.WriteLine("\t/// </summary>");
            streamWriter.WriteLine("\t[Serializable]");
            streamWriter.WriteLine("\tpublic  class " + className + " {");
            streamWriter.WriteLine();

            //定义每列数据库字段名
            streamWriter.WriteLine("\t\t#region 字段名");
            for (int i = 0; i < table.Columns.Count; i++)
            {
                Column column = (Column)table.Columns[i];
                streamWriter.WriteLine("\t\tpublic static string Field" + Utility.FormatPascal(column.ProgrammaticAlias) + " = \"" + Utility.FormatPascal(column.ProgrammaticAlias) + "\";");
            }
            streamWriter.WriteLine("\t\t#endregion");
            streamWriter.WriteLine();

            //为每列创建属性
            streamWriter.WriteLine("\t\t#region 属性");
            string privateName, publicName;

            for (int i = 0; i < table.Columns.Count; i++)
            {
                Column column = (Column)table.Columns[i];
                privateName = "_" + Utility.FormatCamel(column.ProgrammaticAlias);
                publicName  = Utility.FormatPascal(column.ProgrammaticAlias);

                streamWriter.WriteLine("\t\tprivate " + Utility.GetClassType(column.Type) + " " + privateName + ";");
                streamWriter.WriteLine("\t\tpublic " + Utility.GetClassType(column.Type) + " " + publicName);
                streamWriter.WriteLine("\t\t{");
                streamWriter.WriteLine("\t\t\tget{ return " + privateName + ";}");
                streamWriter.WriteLine("\t\t\tset{ " + privateName + "=value;}");
                streamWriter.WriteLine("\t\t}");
            }
            streamWriter.WriteLine("\t\t#endregion");
            streamWriter.WriteLine();

            //添加构造函数
            streamWriter.WriteLine("\t\t#region 构造函数");
            streamWriter.WriteLine("\t\tpublic " + className + "(){}");

            streamWriter.WriteLine();

            streamWriter.WriteLine("\t\tpublic " + className + "(DataRow dr)");
            streamWriter.WriteLine("\t\t{");
            for (int i = 0; i < table.Columns.Count; i++)
            {
                Column column = (Column)table.Columns[i];
                streamWriter.WriteLine("\t\t\tif (dr[Field" + Utility.FormatPascal(column.ProgrammaticAlias) + "] != DBNull.Value)");
                streamWriter.WriteLine("\t\t\t{");
                streamWriter.WriteLine("\t\t\t\t_" + Utility.FormatCamel(column.ProgrammaticAlias) + " = (" + Utility.GetClassType(column.Type) + ")dr[Field" + Utility.FormatPascal(column.ProgrammaticAlias) + "];");
                streamWriter.WriteLine("\t\t\t}");
            }
            streamWriter.WriteLine("\t\t}");

            streamWriter.WriteLine("\t\t#endregion");

            streamWriter.WriteLine();


            // Close out the class and namespace
            streamWriter.WriteLine("\t}");

            //创建集合类
            CreateCollectionClass(table, streamWriter);

            streamWriter.WriteLine("}");

            // Flush and close the stream
            streamWriter.Flush();
            streamWriter.Close();
        }
コード例 #12
0
        /// <summary>
        /// 创建Business类
        /// </summary>
        /// <param name="table">表对象</param>
        /// <param name="storedProcedurePrefix">存储过程前缀</param>
        /// <param name="path">类文件路径</param>
        internal static void CreateBusinessClass(Table table, string targetNamespace, string storedProcedurePrefix, string path)
        {
            string className = Utility.FormatPascal(table.ProgrammaticAlias) + "Manager";

            // 创建 class头
            StreamWriter streamWriter = new StreamWriter(path + className + ".cs");

            streamWriter.WriteLine("using System;");
            streamWriter.WriteLine("using System.Data;");
            streamWriter.WriteLine("using System.Data.SqlClient;");
            streamWriter.WriteLine("using System.Collections;");
            streamWriter.WriteLine("using DataAccess;");
            if (targetNamespace.Length > 0)
            {
                streamWriter.WriteLine("using " + targetNamespace + ".Component;");
            }
            else
            {
                streamWriter.WriteLine("using Component;");
            }

            streamWriter.WriteLine();
            if (targetNamespace.Length > 0)
            {
                streamWriter.WriteLine("namespace " + targetNamespace + ".Business {");
            }
            else
            {
                streamWriter.WriteLine("namespace " + "Business {");
            }

            streamWriter.WriteLine("\t/// <summary>");
            streamWriter.WriteLine("\t/// " + className + "类");
            streamWriter.WriteLine("\t/// </summary>");
            streamWriter.WriteLine("\t[Serializable]");
            streamWriter.WriteLine("\tpublic  class " + className + " {");
            streamWriter.WriteLine();

            // 创建公共方法
            streamWriter.WriteLine("\t\t#region 公共方法");

            CreateInsertMethod(table, storedProcedurePrefix, streamWriter);
            CreateUpdateMethod(table, storedProcedurePrefix, streamWriter);
            CreateDeleteMethod(table, storedProcedurePrefix, streamWriter);
            CreateDeleteByMethods(table, storedProcedurePrefix, streamWriter);
            CreateSelectMethod(table, storedProcedurePrefix, streamWriter);
            CreateSelectByWhereMethod(table, storedProcedurePrefix, streamWriter);
            CreateSelectByPaging(table, storedProcedurePrefix, streamWriter);
            //			CreateSelectByMethods(table, storedProcedurePrefix, streamWriter);
            streamWriter.WriteLine("\t\t#endregion");

            // Close out the class and namespace
            streamWriter.WriteLine("\t}");

            streamWriter.WriteLine("}");


            // Flush and close the stream
            streamWriter.Flush();
            streamWriter.Close();
        }
コード例 #13
0
ファイル: Utility.cs プロジェクト: tyriankid/CodeGenerator
        /// <summary>
        /// Creates a string for a SqlParameter representing the specified column.
        /// </summary>
        /// <param name="column">Object that stores the information for the column the parameter represents.</param>
        /// <param name="checkForOutputParameter">Indicates if a check should be performed to see if the parameter being created is an output parameter.</param>
        /// <returns>String containing SqlParameter information of the specified column for a method call.</returns>
        internal static string CreateSqlParameterNoCommand(Table table, Column column, bool checkForOutputParameter)
        {
            byte bytePrecision;
            byte byteScale;

            string[] methodParameter;

            // Get an array of data types and variable names
            methodParameter = CreateMethodParameter(column).Split(' ');

            // Convert the precision value
            if (column.Precision.Length > 0)
            {
                bytePrecision = byte.Parse(column.Precision);
            }
            else
            {
                bytePrecision = 0;
            }

            // Convert the scale value
            if (column.Scale.Length > 0)
            {
                byteScale = byte.Parse(column.Scale);
            }
            else
            {
                byteScale = 0;
            }

            // Is the parameter used for input or output
            if (checkForOutputParameter && (column.IsRowGuidCol || column.IsIdentity))
            {
                return("new SqlParameter(\"@" + column.ProgrammaticAlias + "\", SqlDbType." + GetSqlDbType(column.Type) + ", " + column.Length + ", ParameterDirection.Output, false, " + bytePrecision + ", " + byteScale + ", \"" + column.Name + "\", DataRowVersion.Proposed, null)");
            }
            else
            {
                return("new SqlParameter(\"@" + column.ProgrammaticAlias + "\", SqlDbType." + GetSqlDbType(column.Type) + ", " + column.Length + ", ParameterDirection.Input, false, " + bytePrecision + ", " + byteScale + ", \"" + column.Name + "\", DataRowVersion.Proposed, " + table.ProgrammaticAlias.ToLower() + "." + Utility.FormatPascal(column.ProgrammaticAlias) + ")");
            }
        }