Example #1
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}");
            }
        }
Example #2
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
            }
        }
Example #3
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}");
            }
        }