public string CreatPROCGetMaxID() { StringPlus strclass = new StringPlus(); if (_keys.Count > 0) { string keyname = ""; foreach (ColumnInfo obj in _keys) { if (CodeCommon.DbTypeToCS(obj.TypeName) == "int") { keyname = obj.ColumnName; if (obj.IsPK) { strclass.Append("if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].["); strclass.Append("" + ProcPrefix + "" + _tablename + "_GetMaxId"); strclass.AppendLine("]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)"); strclass.AppendLine("drop procedure [dbo].[" + ProcPrefix + "" + _tablename + "_GetMaxId]"); strclass.AppendLine("GO"); strclass.AppendLine("------------------------------------"); strclass.AppendLine("--用途:得到主键字段最大值 "); strclass.AppendLine("--项目名称:" + ProjectName); strclass.AppendLine("--说明:"); strclass.AppendLine("--时间:" + DateTime.Now.ToString()); strclass.AppendLine("------------------------------------"); strclass.AppendLine("CREATE PROCEDURE " + ProcPrefix + "" + _tablename + "_GetMaxId"); strclass.AppendLine("AS"); strclass.AppendSpaceLine(1, "DECLARE @TempID int"); strclass.AppendSpaceLine(1, "SELECT @TempID = max([" + keyname + "])+1 FROM [" + _tablename + "]"); strclass.AppendSpaceLine(1, "IF @TempID IS NULL"); strclass.AppendSpaceLine(2, "RETURN 1"); strclass.AppendSpaceLine(1, "ELSE"); strclass.AppendSpaceLine(2, "RETURN @TempID"); strclass.AppendLine(""); strclass.AppendLine("GO"); break; } } } } return(strclass.ToString()); }
public static string GetWhereParameterExpression(List <ColumnInfo> keys, bool IdentityisPrior, string DbType) { StringPlus stringPlus = new StringPlus(); ColumnInfo identityKey = CodeCommon.GetIdentityKey(keys); bool flag = CodeCommon.HasNoIdentityKey(keys); //if (flag) //{ // //没有自增列 用主键 // foreach (ColumnInfo current in keys) // { // if (current.IsPrimaryKey) // { // stringPlus.Append(current.ColumnName + "=" + CodeCommon.preParameter(DbType) + current.ColumnName); // } // } //} //else if ((IdentityisPrior && identityKey != null) || (!flag && identityKey != null)) { stringPlus.Append(identityKey.ColumnName + "=" + CodeCommon.preParameter(DbType) + identityKey.ColumnName); } else { foreach (ColumnInfo current in keys) { if (current.IsPrimaryKey || !current.IsIdentity) { stringPlus.Append(string.Concat(new string[] { current.ColumnName, "=", CodeCommon.preParameter(DbType), current.ColumnName, " and " })); } } stringPlus.DelLastChar("and"); } return(stringPlus.Value); }
/// <summary> /// 得到方法输入参数的列表 (例如:用于Exists Delete GetModel 的参数传入) /// </summary> /// <param name="keys"></param> /// <returns></returns> public string GetInParameter(List <ColumnInfo> fieldlist, bool output) { StringPlus strclass = new StringPlus(); foreach (ColumnInfo field in fieldlist) { string columnName = field.ColumnName; string columnType = field.TypeName; bool IsIdentity = field.IsIdentity; bool IsPK = field.IsPK; string Length = field.Length; string Preci = field.Preci; string Scale = field.Scale; switch (columnType.ToLower()) { case "decimal": case "numeric": strclass.Append("@" + columnName + " " + columnType + "(" + Preci + "," + Scale + ")"); break; case "varchar": case "nvarchar": case "char": case "nchar": strclass.Append("@" + columnName + " " + columnType + "(" + CodeCommon.GetDataTypeLenVal(columnType.ToLower(), Length) + ")"); break; default: strclass.Append("@" + columnName + " " + columnType); break; } if ((IsIdentity) && (output)) { strclass.AppendLine(" output,"); continue; } strclass.AppendLine(","); } strclass.DelLastComma(); return(strclass.Value); }
public string GetWhereExpression(List <ColumnInfo> keys) { StringPlus stringPlus = new StringPlus(); foreach (ColumnInfo current in keys) { stringPlus.Append(current.ColumnName + "=@" + current.ColumnName + " and "); } stringPlus.DelLastChar("and"); return(stringPlus.Value); }
/// <summary> /// 得到参数的列表(例如:用于Exists Delete GetModel 的参数传入) /// </summary> /// <param name="keys"></param> /// <returns></returns> public static string GetParameter(List <CodeKey> keys) { StringPlus strclass = new StringPlus(); foreach (CodeKey key in keys) { strclass.Append(CodeCommon.DbTypeToCS(key.KeyType) + " " + key.KeyName + ","); } strclass.DelLastComma(); return(strclass.Value); }
public string CreatPROCUpdate(DataTable dtColumn) { StringPlus strclass = new StringPlus(); StringPlus strclass1 = new StringPlus(); strclass.AppendLine("------------------------------------"); strclass.AppendLine("--用途:修改一条记录 "); strclass.AppendLine("--项目名称:" + ProjectName); strclass.AppendLine("--说明:"); strclass.AppendLine("--时间:" + DateTime.Now.ToString()); strclass.AppendLine("------------------------------------"); strclass.AppendLine("CREATE PROCEDURE " + ProcPrefix + "" + _tablename + "_Update"); foreach (DataRow row in dtColumn.Rows) { string columnName = row["ColumnName"].ToString(); string columnType = row["TypeName"].ToString(); string Length = row["Length"].ToString(); string Preci = row["Preci"].ToString(); string Scale = row["Scale"].ToString(); switch (columnType.ToLower()) { case "decimal": case "numeric": strclass.AppendLine("@" + columnName + " " + columnType + "(" + Preci + "," + Scale + "),"); break; case "varchar": case "nvarchar": case "char": case "nchar": strclass.AppendLine("@" + columnName + " " + columnType + "(" + Length + "),"); break; default: strclass.AppendLine("@" + columnName + " " + columnType + ","); break; } if (ID == columnName) { continue; } strclass1.Append("[" + columnName + "] = @" + columnName + ","); } strclass.DelLastComma(); strclass1.DelLastComma(); strclass.AppendLine(""); strclass.AppendLine(" AS "); strclass.AppendSpaceLine(1, "UPDATE " + _tablename + " SET "); strclass.AppendSpaceLine(1, strclass1.Value); strclass.AppendSpaceLine(1, "WHERE [" + ID + "] = @" + ID); strclass.AppendLine(""); strclass.AppendLine("GO"); return(strclass.Value); }
/// <summary> /// 字段的 select 列表 /// </summary> public static string GetFieldstrlistAdd(List <ColumnInfo> keys) { StringPlus _fields = new StringPlus(); foreach (ColumnInfo obj in keys) { _fields.Append(obj.ColumnName + "+"); } _fields.DelLastChar("+"); return(_fields.Value); }
/// <summary> /// 得到方法输入参数的列表 (例如:用于Exists Delete GetModel 的参数传入) /// </summary> /// <param name="keys"></param> /// <returns></returns> public static string GetInParameter(List <ColumnInfo> keys) { StringPlus strclass = new StringPlus(); foreach (ColumnInfo key in keys) { strclass.Append(CodeCommon.DbTypeToCS(key.TypeName) + " " + key.ColumnName + ","); } strclass.DelLastComma(); return(strclass.Value); }
/// <summary> /// 生成update查询语句 /// </summary> /// <param name="dbname">库名</param> /// <param name="tablename">表名</param> /// <returns></returns> public string GetSQLDelete(string dbname, string tablename) { dbobj.DbConnectStr = _dbconnectStr; this.DbName = dbname; this.TableName = tablename; StringPlus strsql = new StringPlus(); strsql.AppendLine("delete from " + tablename); strsql.Append(" where <搜索条件>"); return(strsql.Value); }
/// <summary> /// 得到Where条件语句 - Parameter方式 (例如:用于Exists Delete GetModel 的where) /// </summary> /// <param name="keys"></param> /// <returns></returns> public string GetWhereExpression(List <ColumnInfo> keys) { StringPlus strclass = new StringPlus(); foreach (ColumnInfo key in keys) { strclass.Append(key.ColumnName + "=" + preParameter + key.ColumnName + " and "); } strclass.DelLastChar("and"); return(strclass.Value); }
/// <summary> /// 得到GetModel()的代码 /// </summary> /// <param name="DbName"></param> /// <param name="_tablename"></param> /// <param name="_key"></param> /// <param name="ModelName"></param> /// <returns></returns> public string CreatGetModel() { if (ModelSpace == "") { //ModelSpace = "ModelClassName"; ; } StringPlus strclass = new StringPlus(); strclass.Append(""); strclass.AppendSpaceLine(2, "/// <summary>"); strclass.AppendSpaceLine(2, "/// 得到一个对象实体"); strclass.AppendSpaceLine(2, "/// </summary>"); strclass.AppendSpaceLine(2, "public " + ModelSpace + " GetModel(" + LTP.CodeHelper.CodeCommon.GetInParameter(Keys) + ")"); strclass.AppendSpaceLine(2, "{"); strclass.AppendSpaceLine(3, KeysNullTip); strclass.AppendSpaceLine(3, "StringBuilder strSql=new StringBuilder();"); strclass.AppendSpaceLine(3, "strSql.Append(\"select " + Fieldstrlist + " from " + _tablename + " \");"); strclass.AppendSpaceLine(3, "strSql.Append(\" where " + GetWhereExpression(Keys) + "\");"); strclass.AppendSpaceLine(3, "Database db = DatabaseFactory.CreateDatabase();"); strclass.AppendSpaceLine(3, "DbCommand dbCommand = db.GetSqlStringCommand(strSql.ToString());"); strclass.Append(GetPreParameter(Keys)); strclass.AppendSpaceLine(3, "" + ModelSpace + " model=null;"); strclass.AppendSpaceLine(3, "using (IDataReader dataReader = db.ExecuteReader(dbCommand))"); strclass.AppendSpaceLine(3, "{"); strclass.AppendSpaceLine(4, "if(dataReader.Read())"); strclass.AppendSpaceLine(4, "{"); strclass.AppendSpaceLine(5, "model=ReaderBind(dataReader);"); strclass.AppendSpaceLine(4, "}"); strclass.AppendSpaceLine(3, "}"); strclass.AppendSpaceLine(3, "return model;"); strclass.AppendSpaceLine(2, "}"); return(strclass.Value); }
public string GetSQLSelect(string dbname, string tablename) { this.dbobj.DbConnectStr = this._dbconnectStr; List <ColumnInfo> columnList = this.dbobj.GetColumnList(dbname, tablename); this.DbName = dbname; this.TableName = tablename; StringPlus stringPlus = new StringPlus(); stringPlus.Append("select "); if (columnList != null && columnList.Count > 0) { foreach (ColumnInfo current in columnList) { stringPlus.Append(current.ColumnName + ","); } stringPlus.DelLastComma(); } stringPlus.Append(" from " + tablename); return(stringPlus.Value); }
/// <summary> /// 得到字段列表 /// </summary> /// <param name="dt"></param> /// <returns></returns> public string GetFieldslist(DataTable dt) { StringPlus strclass = new StringPlus(); foreach (DataRow row in dt.Rows) { string columnName = row["ColumnName"].ToString(); strclass.Append("[" + columnName + "],"); } strclass.DelLastComma(); return(strclass.Value); }
/// <summary> /// 生成实体类的属性 /// </summary> /// <returns></returns> public string CreatModelMethod() { StringPlus strclass = new StringPlus(); StringPlus strclass1 = new StringPlus(); StringPlus strclass2 = new StringPlus(); strclass.AppendSpaceLine(2, "#region Model"); foreach (ColumnInfo field in Fieldlist) { string columnName = field.ColumnName; string columnType = field.TypeName; bool IsIdentity = field.IsIdentity; bool ispk = field.IsPK; bool cisnull = field.cisNull; string deText = field.DeText; columnType = CodeCommon.DbTypeToCS(columnType); string isnull = ""; if (CodeCommon.isValueType(columnType)) { if ((!IsIdentity) && (!ispk) && (cisnull)) { isnull = "?";//代表可空类型 } } strclass1.AppendSpaceLine(2, "private " + columnType + isnull + " _" + columnName.ToLower() + ";");//私有变量 strclass2.AppendSpaceLine(2, "/// <summary>"); strclass2.AppendSpaceLine(2, "/// " + deText); strclass2.AppendSpaceLine(2, "/// </summary>"); strclass2.AppendSpaceLine(2, "public " + columnType + isnull + " " + columnName);//属性 strclass2.AppendSpaceLine(2, "{"); strclass2.AppendSpaceLine(3, "set{" + " _" + columnName.ToLower() + "=value;}"); strclass2.AppendSpaceLine(3, "get{return " + "_" + columnName.ToLower() + ";}"); strclass2.AppendSpaceLine(2, "}"); } strclass.Append(strclass1.Value); strclass.Append(strclass2.Value); strclass.AppendSpaceLine(2, "#endregion Model"); return(strclass.ToString()); }
public string GetIDALCode(bool Maxid, bool Exists, bool Add, bool Update, bool Delete, bool GetModel, bool List) { StringPlus strclass = new StringPlus(); strclass.AppendLine("using System;"); strclass.AppendLine("using System.Data;"); strclass.AppendLine("namespace " + IDALpath); strclass.AppendLine("{"); strclass.AppendSpaceLine(1, "/// <summary>"); strclass.AppendSpaceLine(1, "/// 接口层" + TableDescription); strclass.AppendSpaceLine(1, "/// </summary>"); strclass.AppendSpaceLine(1, "public interface " + IClass); strclass.AppendSpaceLine(1, "{"); strclass.AppendSpaceLine(2, "#region 成员方法"); if (Maxid) { strclass.Append(CreatGetMaxID()); } if (Exists) { strclass.Append(CreatExists()); } if (Add) { strclass.Append(CreatAdd()); } if (Update) { strclass.Append(CreatUpdate()); } if (Delete) { strclass.Append(CreatDelete()); } if (GetModel) { strclass.Append(CreatGetModel()); } if (List) { strclass.Append(CreatGetList()); } strclass.AppendSpaceLine(2, "#endregion 成员方法"); strclass.AppendSpaceLine(2, "#region MethodEx"); strclass.AppendLine(""); strclass.AppendSpaceLine(2, "#endregion MethodEx"); strclass.AppendLine(" } "); strclass.AppendLine("}"); return(strclass.ToString()); }
/// <summary> /// 得到Update()的代码 /// </summary> /// <param name="DbName"></param> /// <param name="_tablename"></param> /// <param name="_key"></param> /// <param name="ModelName"></param> /// <returns></returns> public string CreatUpdate() { if (ModelSpace == "") { //ModelSpace = "ModelClassName"; ; } StringPlus strclass = new StringPlus(); StringPlus strclass1 = new StringPlus(); StringPlus strclass2 = new StringPlus(); strclass.AppendSpaceLine(2, "/// <summary>"); strclass.AppendSpaceLine(2, "/// 更新一条数据"); strclass.AppendSpaceLine(2, "/// </summary>"); strclass.AppendSpaceLine(2, "public void Update(" + ModelSpace + " model)"); strclass.AppendSpaceLine(2, "{"); strclass.AppendSpaceLine(3, "StringBuilder strSql=new StringBuilder();"); strclass.AppendSpaceLine(3, "strSql.Append(\"update " + _tablename + " set \");"); int n = 0; foreach (ColumnInfo field in Fieldlist) { string columnName = field.ColumnName; string columnType = field.TypeName; string Length = field.Length; bool IsIdentity = field.IsIdentity; bool isPK = field.IsPK; strclass1.AppendSpaceLine(5, "new " + DbParaHead + "Parameter(\"" + preParameter + columnName + "\", " + DbParaDbType + "." + CodeCommon.DbTypeLength(dbobj.DbType, columnType, Length) + "),"); strclass2.AppendSpaceLine(3, "parameters[" + n + "].Value = model." + columnName + ";"); n++; if (field.IsIdentity || field.IsPK || (Keys.Contains(field))) { continue; } strclass.AppendSpaceLine(3, "strSql.Append(\"" + columnName + "=" + preParameter + columnName + ",\");"); } //去掉最后的逗号 strclass.DelLastComma(); strclass.AppendLine("\");"); strclass.AppendSpaceLine(3, "strSql.Append(\" where " + GetWhereExpression(Keys) + "\");"); strclass.AppendSpaceLine(3, "" + DbParaHead + "Parameter[] parameters = {"); strclass1.DelLastComma(); strclass.Append(strclass1.Value); strclass.AppendLine("};"); strclass.AppendLine(strclass2.Value); strclass.AppendSpaceLine(3, "" + DbHelperName + ".ExecuteSql(strSql.ToString(),parameters);"); strclass.AppendSpaceLine(2, "}"); return(strclass.ToString()); }
/// <summary> /// 生成update查询语句 /// </summary> /// <param name="dbname">库名</param> /// <param name="tablename">表名</param> /// <returns></returns> public string GetSQLDelete(string dbname, string tablename) { dbobj.DbConnectStr = _dbconnectStr; //DataTable dt = dbobj.GetColumnList(dbname, tablename); //List<ColumnInfo> collist = dbobj.GetColumnList(dbname, tablename); this.DbName = dbname; this.TableName = tablename; StringPlus strsql = new StringPlus(); strsql.AppendLine("delete from [" + tablename + "]"); strsql.Append(" where <搜索条件>"); return(strsql.Value); }
/// <summary> /// 生成Select查询语句 /// </summary> /// <param name="dbname">库名</param> /// <param name="tablename">表名</param> /// <returns></returns> public string GetSQLSelect(string dbname, string tablename) { dbobj.DbConnectStr = _dbconnectStr; DataTable dt = dbobj.GetColumnList(dbname, tablename); this.DbName = dbname; this.TableName = tablename; StringPlus strsql = new StringPlus(); strsql.Append("select "); if (dt != null) { foreach (DataRow row in dt.Rows) { string columnName = row["ColumnName"].ToString(); strsql.Append("[" + columnName + "],"); } strsql.DelLastComma(); } strsql.Append(" from " + tablename); return(strsql.Value); }
/// <summary> /// 生成Select查询语句 /// </summary> /// <param name="dbname">库名</param> /// <param name="tablename">表名</param> /// <returns></returns> public string GetSQLSelect(string dbname, string tablename) { dbobj.DbConnectStr = _dbconnectStr; List <ColumnInfo> collist = dbobj.GetColumnList(dbname, tablename); this.DbName = dbname; this.TableName = tablename; StringPlus strsql = new StringPlus(); strsql.Append("select "); if ((collist != null) && (collist.Count > 0)) { foreach (ColumnInfo col in collist) { strsql.Append("" + col.ColumnName + ","); } strsql.DelLastComma(); } strsql.Append(" from " + tablename); return(strsql.Value); }
public static string GetInParameter(List <ColumnInfo> keys, bool IdentityisPrior) { StringPlus stringPlus = new StringPlus(); ColumnInfo identityKey = CodeCommon.GetIdentityKey(keys); if (IdentityisPrior && identityKey != null) { stringPlus.Append(CodeCommon.DbTypeToCS(identityKey.TypeName) + " " + identityKey.ColumnName); } else { foreach (ColumnInfo current in keys) { if (current.IsPrimaryKey || !current.IsIdentity) { stringPlus.Append(CodeCommon.DbTypeToCS(current.TypeName) + " " + current.ColumnName + ","); } } stringPlus.DelLastComma(); } return(stringPlus.Value); }
public static string GetFieldstrlistAdd(List <ColumnInfo> keys, bool IdentityisPrior) { StringPlus stringPlus = new StringPlus(); ColumnInfo identityKey = CodeCommon.GetIdentityKey(keys); if (IdentityisPrior && identityKey != null) { stringPlus.Append(identityKey.ColumnName); } else { foreach (ColumnInfo current in keys) { if (current.IsPrimaryKey || !current.IsIdentity) { stringPlus.Append(current.ColumnName + "+"); } } stringPlus.DelLastChar("+"); } return(stringPlus.Value); }
public string CreatPROCADD() { StringPlus stringPlus = new StringPlus(); StringPlus stringPlus2 = new StringPlus(); StringPlus stringPlus3 = new StringPlus(); stringPlus.AppendLine("------------------------------------"); stringPlus.AppendLine("--用途:增加一条记录 "); stringPlus.AppendLine("--项目名称:" + this.ProjectName); stringPlus.AppendLine("--说明:"); stringPlus.AppendLine("--时间:" + DateTime.Now.ToString()); stringPlus.AppendLine("------------------------------------"); stringPlus.AppendLine("CREATE PROCEDURE " + this.ProcPrefix + this._tablename + "_ADD"); stringPlus.AppendLine(this.GetInParameter(this.Fieldlist, true)); foreach (ColumnInfo current in this.Fieldlist) { string columnName = current.ColumnName; string typeName = current.TypeName; bool isIdentity = current.IsIdentity; bool arg_E9_0 = current.IsPrimaryKey; string arg_F0_0 = current.Length; string arg_F7_0 = current.Precision; string arg_FE_0 = current.Scale; if (isIdentity) { this._key = columnName; this._keyType = typeName; } else { stringPlus2.Append(columnName + ","); stringPlus3.Append("@" + columnName + ","); } } stringPlus2.DelLastComma(); stringPlus3.DelLastComma(); stringPlus.AppendLine(""); stringPlus.AppendLine(" AS "); stringPlus.AppendSpaceLine(1, "INSERT INTO " + this._tablename + "("); stringPlus.AppendSpaceLine(1, stringPlus2.Value); stringPlus.AppendSpaceLine(1, ")VALUES("); stringPlus.AppendSpaceLine(1, stringPlus3.Value); stringPlus.AppendSpaceLine(1, ")"); if (this.IsHasIdentity) { stringPlus.AppendSpaceLine(1, "SET @" + this._key + " = @@IDENTITY"); } stringPlus.AppendLine(""); stringPlus.AppendLine("GO"); return(stringPlus.Value); }
/// <summary> /// 得到Update()的代码 /// </summary> /// <param name="DbName"></param> /// <param name="_tablename"></param> /// <param name="_key"></param> /// <param name="ModelName"></param> /// <returns></returns> public string CreatUpdate() { if (ModelSpace == "") { //ModelSpace = "ModelClassName"; ; } StringPlus strclass = new StringPlus(); StringPlus strclass1 = new StringPlus(); StringPlus strclass2 = new StringPlus(); strclass.AppendSpaceLine(2, "/// <summary>"); strclass.AppendSpaceLine(2, "/// 更新一条数据"); strclass.AppendSpaceLine(2, "/// </summary>"); strclass.AppendSpaceLine(2, "public void Update(" + ModelSpace + " model)"); strclass.AppendSpaceLine(2, "{"); strclass.AppendSpaceLine(3, "StringBuilder strSql=new StringBuilder();"); strclass.AppendSpaceLine(3, "strSql.Append(\"update " + _tablename + " set \");"); //int n = 0; foreach (ColumnInfo field in Fieldlist) { string columnName = field.ColumnName; string columnType = field.TypeName; string Length = field.Length; bool IsIdentity = field.IsIdentity; bool isPK = field.IsPK; strclass1.AppendSpaceLine(3, "db.AddInParameter(dbCommand, \"" + columnName + "\", DbType." + CSToProcType(columnType) + ", model." + columnName + ");"); if (field.IsIdentity || field.IsPK || (Keys.Contains(field))) { continue; } strclass.AppendSpaceLine(3, "strSql.Append(\"" + columnName + "=" + preParameter + columnName + ",\");"); } //去掉最后的逗号 strclass.DelLastComma(); strclass.AppendLine("\");"); strclass.AppendSpaceLine(3, "strSql.Append(\" where " + GetWhereExpression(Keys) + "\");"); strclass.AppendSpaceLine(3, "Database db = DatabaseFactory.CreateDatabase();"); strclass.AppendSpaceLine(3, "DbCommand dbCommand = db.GetSqlStringCommand(strSql.ToString());"); strclass.Append(strclass1.Value); strclass.AppendSpaceLine(3, "db.ExecuteNonQuery(dbCommand);\r\n"); strclass.AppendSpaceLine(2, "}"); return(strclass.ToString()); }
/// <summary> /// 得到主键条件字段参数定义列表 /// </summary> /// <param name="Keys"></param> /// <returns></returns> public string GetkeyParalist(Hashtable Keys) { StringPlus strlist = new StringPlus(); foreach (DictionaryEntry key in Keys) { strlist.Append(CodeCommon.DbTypeToCS(key.Value.ToString()) + " " + key.Key.ToString() + ","); } if (strlist.Value.IndexOf(",") > 0) { strlist.DelLastComma(); } return(strlist.Value); }
public static string GetWhereExpression(List <ColumnInfo> keys, bool IdentityisPrior) { StringPlus stringPlus = new StringPlus(); ColumnInfo identityKey = CodeCommon.GetIdentityKey(keys); if (IdentityisPrior && identityKey != null) { if (CodeCommon.IsAddMark(identityKey.TypeName)) { stringPlus.Append(identityKey.ColumnName + "='\"+" + identityKey.ColumnName + "+\"'"); } else { stringPlus.Append(identityKey.ColumnName + "=\"+" + identityKey.ColumnName + "+\""); } } else { foreach (ColumnInfo current in keys) { if (current.IsPrimaryKey || !current.IsIdentity) { if (CodeCommon.IsAddMark(current.TypeName)) { stringPlus.Append(current.ColumnName + "='\"+" + current.ColumnName + "+\"' and "); } else { stringPlus.Append(current.ColumnName + "=\"+" + current.ColumnName + "+\" and "); } } } stringPlus.DelLastChar("and"); } return(stringPlus.Value); }
/// <summary> /// 生成INSERT查询语句 /// </summary> /// <param name="dbname">库名</param> /// <param name="tablename">表名</param> /// <returns></returns> public string GetSQLInsert(string dbname, string tablename) { dbobj.DbConnectStr = _dbconnectStr; //DataTable dt = dbobj.GetColumnList(dbname, tablename); List <ColumnInfo> collist = dbobj.GetColumnList(dbname, tablename); this.DbName = dbname; this.TableName = tablename; StringPlus strsql = new StringPlus(); StringPlus strsql2 = new StringPlus(); strsql.AppendLine("INSERT INTO [" + tablename + "] ( "); if ((collist != null) && (collist.Count > 0)) { foreach (ColumnInfo col in collist) { string columnName = col.ColumnName; string columnType = col.TypeName; strsql.AppendLine("[" + columnName + "] ,"); if (LTP.CodeHelper.CodeCommon.IsAddMark(columnType)) { strsql2.Append("'" + columnName + "',"); } else { strsql2.Append(columnName + ","); } } strsql.DelLastComma(); strsql2.DelLastComma(); } strsql.Append(") VALUES (" + strsql2.Value + ")"); return(strsql.Value); }
public string GetWhereExpression(List <ColumnInfo> keys) { StringPlus stringPlus = new StringPlus(); foreach (ColumnInfo current in keys) { stringPlus.Append(string.Concat(new string[] { current.ColumnName, "=", this.preParameter, current.ColumnName, " and " })); } stringPlus.DelLastChar("and"); return(stringPlus.Value); }
/// <summary> /// 生成sql语句中的参数列表(例如:用于Add Exists Update Delete GetModel 的参数传入) /// </summary> /// <param name="keys"></param> /// <returns></returns> public string GetPreParameter(List <ColumnInfo> keys) { StringPlus strclass = new StringPlus(); StringPlus strclass2 = new StringPlus(); strclass.AppendSpaceLine(3, "" + DbParaHead + "Parameter[] parameters = {"); int n = 0; foreach (ColumnInfo key in keys) { strclass.AppendSpaceLine(5, "new " + DbParaHead + "Parameter(\"" + preParameter + "" + key.ColumnName + "\", " + DbParaDbType + "." + CodeCommon.DbTypeLength(dbobj.DbType, key.TypeName, "") + "),"); strclass2.AppendSpaceLine(3, "parameters[" + n.ToString() + "].Value = " + key.ColumnName + ";"); n++; } strclass.DelLastComma(); strclass.AppendLine("};"); strclass.Append(strclass2.Value); return(strclass.Value); }
/// <summary> /// 得到Exists方法的代码 /// </summary> /// <param name="_tablename"></param> /// <param name="ID"></param> /// <returns></returns> public string CreatExists() { StringPlus strclass = new StringPlus(); if (_keys.Count > 0) { strclass.AppendSpaceLine(2, "/// <summary>"); strclass.AppendSpaceLine(2, "/// 是否存在该记录"); strclass.AppendSpaceLine(2, "/// </summary>"); strclass.AppendSpaceLine(2, "public bool Exists(" + LTP.CodeHelper.CodeCommon.GetInParameter(Keys) + ")"); strclass.AppendSpaceLine(2, "{"); strclass.AppendSpaceLine(3, "Database db = DatabaseFactory.CreateDatabase();"); strclass.AppendSpaceLine(3, "StringBuilder strSql = new StringBuilder();"); strclass.AppendSpace(3, "strSql.Append(\"select count(1) from " + _tablename); strclass.AppendLine(" where " + GetWhereExpression(Keys) + "\");"); strclass.AppendSpaceLine(3, "DbCommand dbCommand = db.GetSqlStringCommand(strSql.ToString());"); strclass.Append(GetPreParameter(Keys)); strclass.AppendSpaceLine(3, "int cmdresult;"); strclass.AppendSpaceLine(3, "object obj = db.ExecuteScalar(dbCommand);"); strclass.AppendSpaceLine(3, "if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)))"); strclass.AppendSpaceLine(3, "{"); strclass.AppendSpaceLine(4, "cmdresult = 0;"); strclass.AppendSpaceLine(3, "}"); strclass.AppendSpaceLine(3, "else"); strclass.AppendSpaceLine(3, "{"); strclass.AppendSpaceLine(4, "cmdresult = int.Parse(obj.ToString());"); strclass.AppendSpaceLine(3, "}"); strclass.AppendSpaceLine(3, "if (cmdresult == 0)"); strclass.AppendSpaceLine(3, "{"); strclass.AppendSpaceLine(4, "return false;"); strclass.AppendSpaceLine(3, "}"); strclass.AppendSpaceLine(3, "else"); strclass.AppendSpaceLine(3, "{"); strclass.AppendSpaceLine(4, "return true;"); strclass.AppendSpaceLine(3, "}"); strclass.AppendSpaceLine(2, "}"); } return(strclass.Value); }
/// <summary> /// 生成update查询语句 /// </summary> /// <param name="dbname">库名</param> /// <param name="tablename">表名</param> /// <returns></returns> public string GetSQLUpdate(string dbname, string tablename) { dbobj.DbConnectStr = _dbconnectStr; List <ColumnInfo> collist = dbobj.GetColumnList(dbname, tablename); this.DbName = dbname; this.TableName = tablename; StringPlus strsql = new StringPlus(); strsql.AppendLine("update [" + tablename + "] set "); if ((collist != null) && (collist.Count > 0)) { foreach (ColumnInfo col in collist) { strsql.AppendLine("[" + col.ColumnName + "] = <" + col.ColumnName + ">,"); } strsql.DelLastComma(); } strsql.Append(" where <搜索条件>"); return(strsql.Value); }
/// <summary> /// �õ�Update�����Ĵ��� /// </summary> public string CreatUpdate() { //if (ModelSpaceParent == "") //{ // ModelSpaceParent = "ModelClassName"; ; //} StringPlus strclass = new StringPlus(); StringPlus strclass1 = new StringPlus(); StringPlus strclass2 = new StringPlus(); strclass.AppendSpaceLine(2, "/// <summary>"); strclass.AppendSpaceLine(2, "/// " + Languagelist["summaryUpdate"].ToString()); strclass.AppendSpaceLine(2, "/// </summary>"); strclass.AppendSpaceLine(2, "public bool Update(" + ModelSpaceParent + " model)"); strclass.AppendSpaceLine(2, "{"); strclass.AppendSpaceLine(3, "StringBuilder strSql=new StringBuilder();"); strclass.AppendSpaceLine(3, "strSql.Append(\"update " + _tablenameparent + " set \");"); int n = 0; if (FieldlistParent.Count == 0) { FieldlistParent = KeysParent; } foreach (ColumnInfo field in FieldlistParent) { string columnName = field.ColumnName; string columnType = field.TypeName; string Length = field.Length; bool IsIdentity = field.IsIdentity; bool isPK = field.IsPrimaryKey; strclass1.AppendSpaceLine(5, "new " + DbParaHead + "Parameter(\"" + preParameter + columnName + "\", " + DbParaDbType + "." + CodeCommon.DbTypeLength(dbobj.DbType, columnType, Length) + "),"); strclass2.AppendSpaceLine(3, "parameters[" + n + "].Value = model." + columnName + ";"); n++; if (field.IsIdentity || field.IsPrimaryKey || (KeysParent.Contains(field))) { continue; } strclass.AppendSpaceLine(3, "strSql.Append(\"" + columnName + "=" + preParameter + columnName + ",\");"); } //ȥ�����Ķ��� strclass.DelLastComma(); strclass.AppendLine("\");"); strclass.AppendSpaceLine(3, "strSql.Append(\" where " + CodeCommon.GetWhereParameterExpression(KeysParent, true, dbobj.DbType) + "\");"); strclass.AppendSpaceLine(3, "" + DbParaHead + "Parameter[] parameters = {"); strclass1.DelLastComma(); strclass.Append(strclass1.Value); strclass.AppendLine("};"); strclass.AppendLine(strclass2.Value); strclass.AppendSpaceLine(3, "int rowsAffected=" + DbHelperName + ".ExecuteSql(strSql.ToString(),parameters);"); strclass.AppendSpaceLine(3, "if (rowsAffected > 0)"); strclass.AppendSpaceLine(3, "{"); strclass.AppendSpaceLine(4, "return true;"); strclass.AppendSpaceLine(3, "}"); strclass.AppendSpaceLine(3, "else"); strclass.AppendSpaceLine(3, "{"); strclass.AppendSpaceLine(4, "return false;"); strclass.AppendSpaceLine(3, "}"); strclass.AppendSpaceLine(2, "}"); return strclass.ToString(); }
///// <summary> ///// �õ�Where������� - Parameter��ʽ (���磺����Exists Delete GetModel ��where) ///// </summary> ///// <param name="keys"></param> ///// <returns></returns> //public string GetWhereExpression(List<ColumnInfo> keys) //{ // StringPlus strclass = new StringPlus(); // foreach (ColumnInfo key in keys) // { // strclass.Append(key.ColumnName + "=" + preParameter + key.ColumnName + " and "); // } // strclass.DelLastChar("and"); // return strclass.Value; //} ///// <summary> ///// ����sql����еIJ����б�(���磺����Add Exists Update Delete GetModel �IJ�������) ///// </summary> ///// <param name="keys"></param> ///// <returns></returns> //public string GetPreParameter(List<ColumnInfo> keys) //{ // StringPlus strclass = new StringPlus(); // StringPlus strclass2 = new StringPlus(); // strclass.AppendSpaceLine(3, "" + DbParaHead + "Parameter[] parameters = {"); // int n = 0; // foreach (ColumnInfo key in keys) // { // strclass.AppendSpaceLine(5, "new " + DbParaHead + "Parameter(\"" + preParameter + "" + key.ColumnName + "\", " + DbParaDbType + "." + CodeCommon.DbTypeLength(dbobj.DbType, key.TypeName, "") + "),"); // strclass2.AppendSpaceLine(3, "parameters[" + n.ToString() + "].Value = " + key.ColumnName + ";"); // n++; // } // strclass.DelLastComma(); // strclass.AppendLine("};"); // strclass.Append(strclass2.Value); // return strclass.Value; //} /// <summary> /// ����sql����еIJ����б�(���磺����Add Exists Update Delete GetModel �IJ�������) /// </summary> /// <param name="keys"></param> /// <returns></returns> public string GetPreParameter(List<ColumnInfo> keys, string numPara) { StringPlus strclass = new StringPlus(); StringPlus strclass2 = new StringPlus(); strclass.AppendSpaceLine(3, "" + DbParaHead + "Parameter[] parameters" + numPara + " = {"); int n = 0; foreach (ColumnInfo key in keys) { strclass.AppendSpaceLine(5, "new " + DbParaHead + "Parameter(\"" + preParameter + "" + key.ColumnName + "\", " + DbParaDbType + "." + CodeCommon.DbTypeLength(dbobj.DbType, key.TypeName, "") + "),"); strclass2.AppendSpaceLine(3, "parameters" + numPara + "[" + n.ToString() + "].Value = " + key.ColumnName + ";"); n++; } strclass.DelLastComma(); strclass.AppendLine("};"); strclass.Append(strclass2.Value); return strclass.Value; }
/// <summary> /// ����ʵ��������� /// </summary> /// <returns></returns> public string CreatModelMethod() { StringPlus strclass = new StringPlus(); StringPlus strclass1 = new StringPlus(); StringPlus strclass2 = new StringPlus(); foreach (ColumnInfo field in Fieldlist) { string columnName = field.ColumnName; string columnTypedb = field.TypeName; bool IsIdentity = field.IsIdentity; bool ispk = field.IsPrimaryKey; bool cisnull = field.Nullable; //string defValue=field.DefaultVal; string deText = field.Description; string columnType = CodeCommon.DbTypeToCS(columnTypedb); string isnull = ""; if (CodeCommon.isValueType(columnType)) { if ((!IsIdentity) && (!ispk) && (cisnull)) { isnull = "?";//����ɿ����� } } strclass1.AppendSpace(2, "private " + columnType + isnull + " _" + columnName.ToLower());//˽�б��� if (field.DefaultVal.Length > 0) { switch (columnType.ToLower()) { case "int": case "long": strclass1.Append("=" + field.DefaultVal.Trim().Replace("'", "")); break; case "bool": case "bit": { string val=field.DefaultVal.Trim().Replace("'", "").ToLower(); if(val=="1"||val=="true") { strclass1.Append("= true" ); } else { strclass1.Append("= false"); } } break; case "nchar": case "ntext": case "nvarchar": case "char": case "text": case "varchar": case "string": if (field.DefaultVal.Trim().StartsWith("N'")) { strclass1.Append("=" + field.DefaultVal.Trim().Remove(0, 1).Replace("'", "\"")); } else { if (field.DefaultVal.Trim().IndexOf("'") > -1) { strclass1.Append("=" + field.DefaultVal.Trim().Replace("'", "\"")); } else { strclass1.Append("= \"" + field.DefaultVal.Trim().Replace("(", "").Replace(")", "") + "\""); } } break; case "datetime": if (field.DefaultVal == "getdate"|| field.DefaultVal == "Now()"|| field.DefaultVal == "Now"|| field.DefaultVal == "CURRENT_TIME" || field.DefaultVal == "CURRENT_DATE"|| field.DefaultVal.ToLower().Trim((char)13).Trim((char)10) == "sysdate"|| field.DefaultVal.ToUpper().Trim((char)13).Trim((char)10) == "CURRENT_TIMESTAMP" ) { strclass1.Append("= DateTime.Now"); } else { strclass1.Append("= Convert.ToDateTime(" + field.DefaultVal.Trim().Replace("'", "\"") + ")"); } break; case "uniqueidentifier": { //if (field.DefaultVal == "newid") //{ // strclass1.Append("=" + field.DefaultVal.Trim().Replace("'", "")); //} } break; case "decimal": case "double": case "float": { // strclass1.Append("=" + field.DefaultVal.Replace("'", "").Replace("(", "").Replace(")", "").ToLower()); //strclass1.Append("=" + field.DefaultVal.Replace("'", "").Replace("(", "").Replace(")", "").ToLower().Replace((char)13, '\0').Replace((char)10, '\0').Trim('\0')); strclass1.Append("=" + field.DefaultVal.Replace("'", "").Replace("(", "").Replace(")", "").ToLower().Trim((char)13).Trim((char)10)+"M"); // ���ȥ�ո�ͻس����� //strclass1.Append(); } break; //case "sys_guid()": // break; default: // strclass1.Append("=" + field.DefaultVal); break; } } strclass1.AppendLine(";"); strclass2.AppendSpaceLine(2, "/// <summary>"); strclass2.AppendSpaceLine(2, "/// " + deText); strclass2.AppendSpaceLine(2, "/// </summary>"); strclass2.AppendSpaceLine(2, "public " + columnType + isnull + " " + columnName);//���� strclass2.AppendSpaceLine(2, "{"); strclass2.AppendSpaceLine(3, "set{" + " _" + columnName.ToLower() + "=value;}"); strclass2.AppendSpaceLine(3, "get{return " + "_" + columnName.ToLower() + ";}"); strclass2.AppendSpaceLine(2, "}"); } strclass.AppendSpaceLine(2, " //�ڲ���Ա����"); strclass.Append(strclass1.Value); strclass.AppendLine(); strclass.AppendSpaceLine(2, "#region ʵ������"); strclass.Append(strclass2.Value); strclass.AppendSpaceLine(2, "#endregion"); return strclass.ToString(); }
public string CreatBLLUpdate() { StringPlus strclass = new StringPlus(); strclass.AppendSpaceLine(2, "/// <summary>"); strclass.AppendSpaceLine(2, "/// " + Languagelist["summaryUpdate"].ToString()); strclass.AppendSpaceLine(2, "/// </summary>"); strclass.AppendSpaceLine(2, "public bool Update(" + ModelSpace + " model)"); strclass.AppendSpaceLine(2, "{"); strclass.AppendSpaceLine(3, "return dal.Update(model);"); strclass.AppendSpaceLine(2, "}"); #region �������� 2015-09-15 ���峬 ������ StringPlus strclass0 = new StringPlus();// ������� StringPlus strclass1 = new StringPlus();// ������֤ ��������ֵ StringPlus strclass2 = new StringPlus();// model ��ֵ //bool ishasuser = false; // int errorCode = 1; foreach (ColumnInfo field in Fieldlist) { string columnName = field.ColumnName; //columnName. string columnNameToLower = columnName.ToLower(); string columnType = field.TypeName; string deText = field.Description; bool ispk = field.IsPrimaryKey; bool IsIdentity = field.IsIdentity; //if ((IsIdentity)) //{ // continue; //} //if ("uniqueidentifier" == columnType.ToLower()) //{ // continue; //} if (columnNameToLower == "timestamp") continue; //���Զ���-�����ֶδ��� deText = Maticsoft.CodeHelper.CodeCommon.CutDescText(deText, 15, columnName); strclass0.Append("string " + columnNameToLower + ","); if (field.Nullable) { switch (CodeCommon.DbTypeToCS(columnType.Trim().ToLower()).ToLower()) { case "int": case "smallint": strclass1.AppendSpaceLine(3, "if(!string.IsNullOrEmpty(" + columnNameToLower + ")&&!PageValidate.IsNumber(" + columnNameToLower + ")) strErr=\"" + deText + " �������֣�\\\\n\"; if(!string.IsNullOrEmpty(strErr))return strErr;"); strclass2.AppendSpaceLine(3, "model." + columnName + "=StringHelper.Str2Int(" + columnNameToLower + ");"); break; case "float": case "numeric": case "decimal": strclass1.AppendSpaceLine(3, "if(!string.IsNullOrEmpty(" + columnNameToLower + ")&&!PageValidate.IsDecimal(" + columnNameToLower + ")) strErr=\"" + deText + " �������֣�\\\\n\"; if(!string.IsNullOrEmpty(strErr))return strErr;"); strclass2.AppendSpaceLine(3, "model." + columnName + "=StringHelper.Str2Dec(" + columnNameToLower + ");"); break; case "datetime": case "smalldatetime": strclass1.AppendSpaceLine(3, "if(!string.IsNullOrEmpty(" + columnNameToLower + ")&&!string.IsNullOrEmpty(" + columnNameToLower + ")&&!PageValidate.IsDateTime(" + columnNameToLower + ")) strErr=\"" + deText + " ����ʱ���ַ�����\\\\n\"; if(!string.IsNullOrEmpty(strErr))return strErr;"); strclass2.AppendSpaceLine(3, "model." + columnName + "=StringHelper.Str2DateTime(" + columnNameToLower + ");"); break; case "bool": break; case "byte[]": strclass2.AppendSpaceLine(3, "model." + columnName + "=new UnicodeEncoding().GetBytes(" + columnNameToLower + ");"); break; case "guid": case "uniqueidentifier": break; default: strclass2.AppendSpaceLine(3, "model." + columnName + "=" + columnNameToLower + ";"); break; } } else { switch (CodeCommon.DbTypeToCS(columnType.Trim().ToLower()).ToLower()) { case "int": case "smallint": strclass1.AppendSpaceLine(3, "if(!PageValidate.IsNumber(" + columnNameToLower + ")) strErr=\"" + deText + " �������֣�\\\\n\"; if(!string.IsNullOrEmpty(strErr))return strErr;"); strclass2.AppendSpaceLine(3, "model." + columnName + "=int.Parse(" + columnNameToLower + ");"); break; case "float": case "numeric": case "decimal": strclass1.AppendSpaceLine(3, "if(!PageValidate.IsDecimal(" + columnNameToLower + ")) strErr=\"" + deText + " �������֣�\\\\n\"; if(!string.IsNullOrEmpty(strErr))return strErr;"); strclass2.AppendSpaceLine(3, "model." + columnName + "=decimal.Parse(" + columnNameToLower + ");"); break; case "datetime": case "smalldatetime": strclass1.AppendSpaceLine(3, "if(!PageValidate.IsDateTime(" + columnNameToLower + ")) strErr=\"" + deText + " ����ʱ���ַ�����\\\\n\"; if(!string.IsNullOrEmpty(strErr))return strErr;"); strclass2.AppendSpaceLine(3, "model." + columnName + "=DateTime.Parse(" + columnNameToLower + ");"); break; case "bool": break; case "byte[]": strclass2.AppendSpaceLine(3, "model." + columnName + "=new UnicodeEncoding().GetBytes(" + columnNameToLower + ");"); break; case "guid": case "uniqueidentifier": break; default: strclass2.AppendSpaceLine(3, "model." + columnName + "=" + columnNameToLower + ";"); break; } } } string strretu = "bool"; strclass0.DelLastComma(); // ȥ�����һ������ strclass.AppendLine(); strclass.AppendSpaceLine(2, "/// <summary>"); strclass.AppendSpaceLine(2, "/// " + Languagelist["summaryadd"].ToString()); strclass.AppendSpaceLine(2, "/// </summary>"); strclass.AppendSpaceLine(2, "public " + strretu + " Update(" + strclass0.ToString() + ")"); strclass.AppendSpaceLine(2, "{"); //strclass.AppendSpaceLine(3, "string strErr=\"\";"); //strclass.AppendLine(strclass1.ToString());// ������֤ strclass.AppendSpaceLine(3, ModelSpace + " model=new " + ModelSpace + "();"); strclass.AppendLine(strclass2.ToString());// ���ݸ�ֵ //strclass.AppendSpaceLine(3, "dal.Update(model);"); //strclass.AppendSpaceLine(3, "return strErr;"); strclass.AppendSpaceLine(3,"return dal.Update(model);"); strclass.AppendSpaceLine(2, "}"); #endregion return strclass.ToString(); }
public string CreatBLLADD() { StringPlus strclass = new StringPlus(); strclass.AppendSpaceLine(2, "/// <summary>"); strclass.AppendSpaceLine(2, "/// " + Languagelist["summaryadd"].ToString()); strclass.AppendSpaceLine(2, "/// </summary>"); string strretu = "bool"; if ((DbType == "SQL2000" || DbType == "SQL2005" || DbType == "SQL2008" || DbType == "SQL2012" || DbType == "SQLite" || DbType == "MySQL") && (IsHasIdentity)) { strretu = "int"; if (_keyType != "int") { strretu = _keyType; } } strclass.AppendSpaceLine(2, "public " + strretu + " Add(" + ModelSpace + " model)"); strclass.AppendSpaceLine(2, "{"); if (strretu == "void") { strclass.AppendSpaceLine(3, "dal.Add(model);"); } else { strclass.AppendSpaceLine(3, "return dal.Add(model);"); } strclass.AppendSpaceLine(2, "}"); #region ��������� StringPlus strclass0 = new StringPlus();// ������� StringPlus strclass1 = new StringPlus();// ������֤ ��������ֵ StringPlus strclass2 = new StringPlus();// model ��ֵ //bool ishasuser = false; int errorCode = 1; foreach (ColumnInfo field in Fieldlist) { string columnName = field.ColumnName; //columnName. string columnNameToLower = columnName.ToLower(); string columnType = field.TypeName; string deText = field.Description; bool ispk = field.IsPrimaryKey; bool IsIdentity = field.IsIdentity; if (field.IsIdentity || field.ColumnName == "PK_ID") { continue; } if ("uniqueidentifier" == columnType.ToLower()) { continue; } if (columnNameToLower == "timestamp") continue; //���Զ���-�����ֶδ��� //if ((!ishasuser) && ((columnName.IndexOf("_iCreator") > 0) || (columnName.IndexOf("_iMaintainer") > 0))) //{ // strclass0.AppendSpaceLine(3, "User currentUser;"); // strclass0.AppendSpaceLine(3, "if (Session[\"UserInfo\"] != null)"); // strclass0.AppendSpaceLine(3, "{"); // strclass0.AppendSpaceLine(4, "currentUser = (User)Session[\"UserInfo\"];"); // strclass0.AppendSpaceLine(3, "}else{"); // strclass0.AppendSpaceLine(4, "return;"); // strclass0.AppendSpaceLine(3, "}"); // ishasuser = true; //} deText = Maticsoft.CodeHelper.CodeCommon.CutDescText(deText, 15, columnName); strclass0.Append("string " + columnNameToLower + ","); if (field.Nullable) { switch (CodeCommon.DbTypeToCS(columnType.Trim().ToLower()).ToLower()) { case "int": case "smallint": if (DbType == "Oracle") strclass1.AppendSpaceLine(3, "if(!string.IsNullOrEmpty(" + columnNameToLower + ")&&!PageValidate.IsNumber(" + columnNameToLower + ")) strErr=\"" + deText + " �������֣�\\\\n\"; if(!string.IsNullOrEmpty(strErr))return strErr;"); strclass2.AppendSpaceLine(3, "model." + columnName + "=StringHelper.Str2Int(" + columnNameToLower + ");"); break; case "float": case "numeric": case "decimal": if (DbType == "Oracle") strclass1.AppendSpaceLine(3, "if(!string.IsNullOrEmpty(" + columnNameToLower + ")&&!PageValidate.IsDecimal(" + columnNameToLower + ")) strErr=\"" + deText + " �������֣�\\\\n\"; if(!string.IsNullOrEmpty(strErr))return strErr;"); strclass2.AppendSpaceLine(3, "model." + columnName + "=StringHelper.Str2Dec(" + columnNameToLower + ");"); break; case "datetime": case "smalldatetime": if (DbType == "Oracle") strclass1.AppendSpaceLine(3, "if(!string.IsNullOrEmpty(" + columnNameToLower + ")&&!string.IsNullOrEmpty(" + columnNameToLower + ")&&!PageValidate.IsDateTime(" + columnNameToLower + ")) strErr=\"" + deText + " ����ʱ���ַ�����\\\\n\"; if(!string.IsNullOrEmpty(strErr))return strErr;"); strclass2.AppendSpaceLine(3, "model." + columnName + "=StringHelper.Str2DateTime(" + columnNameToLower + ");"); break; case "bool": break; case "byte[]": strclass2.AppendSpaceLine(3, "model." + columnName + "=new UnicodeEncoding().GetBytes(" + columnNameToLower + ");"); break; case "guid": case "uniqueidentifier": break; default: strclass2.AppendSpaceLine(3, "model." + columnName + "=" + columnNameToLower + ";"); break; } } else { switch (CodeCommon.DbTypeToCS(columnType.Trim().ToLower()).ToLower()) { case "int": case "smallint": if (DbType == "Oracle") strclass1.AppendSpaceLine(3, "if(!PageValidate.IsNumber(" + columnNameToLower + ")) strErr=\"" + deText + " �������֣�\\\\n\"; if(!string.IsNullOrEmpty(strErr))return strErr;"); strclass2.AppendSpaceLine(3, "model." + columnName + "=int.Parse(" + columnNameToLower + ");"); break; case "float": case "numeric": case "decimal": if (DbType == "Oracle") strclass1.AppendSpaceLine(3, "if(!PageValidate.IsDecimal(" + columnNameToLower + ")) strErr=\"" + deText + " �������֣�\\\\n\"; if(!string.IsNullOrEmpty(strErr))return strErr;"); strclass2.AppendSpaceLine(3, "model." + columnName + "=decimal.Parse(" + columnNameToLower + ");"); break; case "datetime": case "smalldatetime": if (DbType == "Oracle") strclass1.AppendSpaceLine(3, "if(!PageValidate.IsDateTime(" + columnNameToLower + ")) strErr=\"" + deText + " ����ʱ���ַ�����\\\\n\"; if(!string.IsNullOrEmpty(strErr))return strErr;"); strclass2.AppendSpaceLine(3, "model." + columnName + "=DateTime.Parse(" + columnNameToLower + ");"); break; case "bool": break; case "byte[]": strclass2.AppendSpaceLine(3, "model." + columnName + "=new UnicodeEncoding().GetBytes(" + columnNameToLower + ");"); break; case "guid": case "uniqueidentifier": break; default: strclass2.AppendSpaceLine(3, "model." + columnName + "=" + columnNameToLower + ";"); break; } } } if (DbType == "Oracle") strretu = "string"; strclass0.DelLastComma(); // ȥ�����һ������ strclass.AppendLine(); strclass.AppendSpaceLine(2, "/// <summary>"); strclass.AppendSpaceLine(2, "/// " + Languagelist["summaryadd"].ToString()); strclass.AppendSpaceLine(2, "/// </summary>"); strclass.AppendSpaceLine(2, "public " + strretu + " Add(" + strclass0.ToString() + ")"); strclass.AppendSpaceLine(2, "{"); if (DbType == "Oracle") strclass.AppendSpaceLine(3, "string strErr=\"\";"); // 2015-10-21 ���峬ע�� strclass.AppendLine(strclass1.ToString());// ������֤ strclass.AppendSpaceLine(3, ModelSpace + " model=new " + ModelSpace + "();"); strclass.AppendLine(strclass2.ToString());// ���ݸ�ֵ if (DbType == "Oracle") { strclass.AppendSpaceLine(3, "dal.Add(model);"); strclass.AppendSpaceLine(3, "return strErr;"); } else { strclass.AppendSpaceLine(3, "return dal.Add(model);"); } strclass.AppendSpaceLine(2, "}"); #endregion return strclass.ToString(); }
/// <summary> /// �õ�Add()�Ĵ��� /// </summary> public string CreatAdd() { if (ModelSpace == "") { //ModelSpace = "ModelClassName"; ; } StringPlus strclass = new StringPlus(); StringPlus strclass1 = new StringPlus(); StringPlus strclass2 = new StringPlus(); StringPlus strclass3 = new StringPlus(); StringPlus strclass4 = new StringPlus(); //strclass.AppendLine(); strclass.AppendSpaceLine(2, "/// <summary>"); strclass.AppendSpaceLine(2, "/// " + Languagelist["summaryadd"].ToString()); strclass.AppendSpaceLine(2, "/// </summary>"); string strretu = "bool"; // strclass.AppendSpaceLine(2, "//" + dbobj.DbType); // strclass.AppendSpaceLine(2, "//" + (dbobj.DbType == "MySQL")); // strclass.AppendSpaceLine(2, "//" + IsHasIdentity); if ((dbobj.DbType == "SQL2000" || dbobj.DbType == "SQL2005" || dbobj.DbType == "SQL2008" || dbobj.DbType == "SQL2012" || dbobj.DbType == "SQLite" || dbobj.DbType == "MySQL") && (IsHasIdentity)) { strretu = "int"; if (_IdentityKeyType != "int") { strretu = _IdentityKeyType; } } //��������ͷ string strFun = CodeCommon.Space(2) + "public " + strretu + " Add(" + ModelSpace + " model)"; strclass.AppendLine(strFun); strclass.AppendSpaceLine(2, "{"); strclass.AppendSpaceLine(3, "int indexPar = 0;"); strclass.AppendSpaceLine(3, "StringBuilder strSql=new StringBuilder();"); strclass.AppendSpaceLine(3, "strSql.Append(\"insert into " + _tablename + "(\");"); strclass1.AppendSpace(3, "strSql.Append(\""); //int n = 0; ��Ϊ�ڲ� indexPar++ foreach (ColumnInfo field in Fieldlist) { string columnName = field.ColumnName; string columnType = field.TypeName; bool IsIdentity = field.IsIdentity; string Length = field.Length; bool nullable = field.Nullable; // strclass4.AppendSpaceLine(3, " // " + field.IsIdentity); if (field.IsIdentity || field.ColumnName == "PK_ID") { continue; } strclass3.AppendSpaceLine(5, "new " + DbParaHead + "Parameter(\"" + preParameter + columnName + "\", " + DbParaDbType + "." + CodeCommon.DbTypeLength(dbobj.DbType, columnType, Length) + "),"); strclass1.Append(columnName + ","); strclass2.Append(preParameter + columnName + ","); if ("uniqueidentifier" == columnType.ToLower()) { strclass4.AppendSpaceLine(3, "parameters[indexPar++].Value = Guid.NewGuid();"); } else { strclass4.AppendSpaceLine(3, "parameters[indexPar++].Value = " + DbHelperName + ".Var2Db(model." + columnName + ");"); } // n++; } //ȥ�����Ķ��� strclass1.DelLastComma(); strclass2.DelLastComma(); strclass3.DelLastComma(); strclass1.AppendLine(")\");"); strclass.Append(strclass1.ToString()); strclass.AppendSpaceLine(3, "strSql.Append(\" values (\");"); strclass.AppendSpaceLine(3, "strSql.Append(\"" + strclass2.ToString() + ")\");"); if ((dbobj.DbType == "SQL2000" || dbobj.DbType == "SQL2005" || dbobj.DbType == "SQL2008" || dbobj.DbType == "SQL2012") && (IsHasIdentity)) { strclass.AppendSpaceLine(3, "strSql.Append(\";select @@IDENTITY\");"); } if ((dbobj.DbType == "SQLite") && (IsHasIdentity)) { strclass.AppendSpaceLine(3, "strSql.Append(\";select LAST_INSERT_ROWID()\");"); } if ((dbobj.DbType == "MySQL") && (IsHasIdentity)) { strclass.AppendSpaceLine(3, "strSql.Append(\"; select @@IDENTITY\");"); } strclass.AppendSpaceLine(3, "" + DbParaHead + "Parameter[] parameters = {"); strclass.Append(strclass3.Value); strclass.AppendLine("};"); strclass.AppendLine(strclass4.Value); //���¶��巽��ͷ if (strretu == "void") { strclass.AppendSpaceLine(3, "" + DbHelperName + ".ExecuteSql(strSql.ToString(),parameters);"); } else if (strretu == "bool") { strclass.AppendSpaceLine(3, "int rows=" + DbHelperName + ".ExecuteSql(strSql.ToString(),parameters);"); strclass.AppendSpaceLine(3, "if (rows > 0)"); strclass.AppendSpaceLine(3, "{"); strclass.AppendSpaceLine(4, "return true;"); strclass.AppendSpaceLine(3, "}"); strclass.AppendSpaceLine(3, "else"); strclass.AppendSpaceLine(3, "{"); strclass.AppendSpaceLine(4, "return false;"); strclass.AppendSpaceLine(3, "}"); } else { strclass.AppendSpaceLine(3, "object obj = " + DbHelperName + ".GetSingle(strSql.ToString(),parameters);"); strclass.AppendSpaceLine(3, "if (obj == null)"); strclass.AppendSpaceLine(3, "{"); strclass.AppendSpaceLine(4, "return 0;"); strclass.AppendSpaceLine(3, "}"); strclass.AppendSpaceLine(3, "else"); strclass.AppendSpaceLine(3, "{"); switch (strretu) { case "int": strclass.AppendSpaceLine(4, "return Convert.ToInt32(obj);"); break; case "long": strclass.AppendSpaceLine(4, "return Convert.ToInt64(obj);"); break; case "decimal": strclass.AppendSpaceLine(4, "return Convert.ToDecimal(obj);"); break; } strclass.AppendSpaceLine(3, "}"); } strclass.AppendSpace(2, "}"); return strclass.ToString(); }
/// <summary> /// �õ�GetModel()�Ĵ��� /// </summary> /// <param name="DbName"></param> /// <param name="_tablename"></param> /// <param name="_key"></param> /// <param name="ModelName"></param> /// <returns></returns> public string CreatGetModel() { if (ModelSpace == "") { //ModelSpace = "ModelClassName"; ; } StringPlus strclass = new StringPlus(); // strclass.AppendLine(); strclass.AppendSpaceLine(2, "/// <summary>"); strclass.AppendSpaceLine(2, "/// " + Languagelist["summaryGetModel"].ToString()); strclass.AppendSpaceLine(2, "/// </summary>"); strclass.AppendSpaceLine(2, "public " + ModelSpace + " GetModel(" + Maticsoft.CodeHelper.CodeCommon.GetInParameter(Keys, true) + ")"); strclass.AppendSpaceLine(2, "{"); strclass.AppendSpaceLine(3, KeysNullTip); strclass.AppendSpaceLine(3, "StringBuilder strSql=new StringBuilder();"); strclass.AppendSpace(3, "strSql.Append(\"select "); if (dbobj.DbType == "SQL2005" || dbobj.DbType == "SQL2000" || dbobj.DbType == "SQL2008" || dbobj.DbType == "SQL2012") { strclass.Append(" top 1 "); } strclass.AppendLine(Fieldstrlist + " from " + _tablename + " \");"); strclass.AppendSpaceLine(3, "strSql.Append(\" where " + CodeCommon.GetWhereParameterExpression(Keys, true, dbobj.DbType) + "\");"); strclass.AppendLine(CodeCommon.GetPreParameter(Keys, true, dbobj.DbType)); strclass.AppendSpaceLine(3, "" + ModelSpace + " model=new " + ModelSpace + "();"); strclass.AppendSpaceLine(3, "DataSet ds=" + DbHelperName + ".Query(strSql.ToString(),parameters);"); strclass.AppendSpaceLine(3, "if(ds.Tables[0].Rows.Count>0)"); strclass.AppendSpaceLine(3, "{"); strclass.AppendSpaceLine(4, "return DataRowToModel(ds.Tables[0].Rows[0]);"); strclass.AppendSpaceLine(3, "}"); strclass.AppendSpaceLine(3, "else"); strclass.AppendSpaceLine(3, "{"); strclass.AppendSpaceLine(4, "return null;"); strclass.AppendSpaceLine(3, "}"); strclass.AppendSpaceLine(2, "}"); return strclass.ToString(); }
/// <summary> /// �õ�Update�����Ĵ��� /// </summary> /// <param name="DbName"></param> /// <param name="_tablename"></param> /// <param name="_key"></param> /// <param name="ModelName"></param> /// <returns></returns> public string CreatUpdate() { if (ModelSpace == "") { //ModelSpace = "ModelClassName"; ; } StringPlus strclass = new StringPlus(); StringPlus strclass1 = new StringPlus(); StringPlus strclass2 = new StringPlus(); StringPlus strclass3 = new StringPlus(); strclass.AppendLine(); strclass.AppendSpaceLine(2, "/// <summary>"); strclass.AppendSpaceLine(2, "/// " + Languagelist["summaryUpdate"].ToString()); strclass.AppendSpaceLine(2, "/// </summary>"); strclass.AppendSpaceLine(2, "public bool Update(" + ModelSpace + " model)"); strclass.AppendSpaceLine(2, "{"); strclass.AppendSpaceLine(3, "int indexPar = 0;"); strclass.AppendSpaceLine(3, "StringBuilder strSql=new StringBuilder();"); strclass.AppendSpaceLine(3, "strSql.Append(\"update " + _tablename + " set \");"); int n = 0; if (Fieldlist.Count == 0) { Fieldlist = Keys; } //�������ֶ���䣬��ʱ���� List<ColumnInfo> fieldpk = new List<ColumnInfo>(); foreach (ColumnInfo field in Fieldlist) { string columnName = field.ColumnName; string columnType = field.TypeName; string Length = field.Length; bool IsIdentity = field.IsIdentity; bool isPK = field.IsPrimaryKey; if (field.IsIdentity || field.IsPrimaryKey || (Keys.Contains(field))) { fieldpk.Add(field); continue; } if (columnType.ToLower() == "timestamp") { continue; } strclass1.AppendSpaceLine(5, "new " + DbParaHead + "Parameter(\"" + preParameter + columnName + "\", " + DbParaDbType + "." + CodeCommon.DbTypeLength(dbobj.DbType, columnType, Length) + "),"); strclass2.AppendSpaceLine(3, "parameters[indexPar++].Value = " + DbHelperName + ".Var2Db(model." + columnName + ");"); n++; strclass3.AppendSpaceLine(3, "strSql.Append(\"" + columnName + "=" + preParameter + columnName + ",\");"); } foreach (ColumnInfo field in fieldpk) { string columnName = field.ColumnName; string columnType = field.TypeName; string Length = field.Length; bool IsIdentity = field.IsIdentity; bool isPK = field.IsPrimaryKey; strclass1.AppendSpaceLine(5, "new " + DbParaHead + "Parameter(\"" + preParameter + columnName + "\", " + DbParaDbType + "." + CodeCommon.DbTypeLength(dbobj.DbType, columnType, Length) + "),"); strclass2.AppendSpaceLine(3, "parameters[indexPar++].Value = " + DbHelperName + ".Var2Db(model." + columnName + ");"); n++; } if (strclass3.Value.Length > 0) { //ȥ�����Ķ��� strclass3.DelLastComma(); strclass3.AppendLine("\");"); } else { strclass3.AppendLine("#warning ϵͳ����ȱ�ٸ��µ��ֶΣ����ֹ�ȷ����˸����Ƿ���ȷ�� "); foreach (ColumnInfo field in Fieldlist) { string columnName = field.ColumnName; strclass3.AppendSpaceLine(3, "strSql.Append(\"" + columnName + "=" + preParameter + columnName + ",\");"); } if (Fieldlist.Count > 0) { strclass3.DelLastComma(); strclass3.AppendLine("\");"); } } strclass.Append(strclass3.Value); strclass.AppendSpaceLine(3, "strSql.Append(\" where " + CodeCommon.GetWhereParameterExpression(Keys, true, dbobj.DbType) + "\");"); strclass.AppendSpaceLine(3, "" + DbParaHead + "Parameter[] parameters = {"); strclass1.DelLastComma(); strclass.Append(strclass1.Value); strclass.AppendLine("};"); strclass.AppendLine(strclass2.Value); strclass.AppendSpaceLine(3, "int rows=" + DbHelperName + ".ExecuteSql(strSql.ToString(),parameters);"); strclass.AppendSpaceLine(3, "if (rows > 0)"); strclass.AppendSpaceLine(3, "{"); strclass.AppendSpaceLine(4, "return true;"); strclass.AppendSpaceLine(3, "}"); strclass.AppendSpaceLine(3, "else"); strclass.AppendSpaceLine(3, "{"); strclass.AppendSpaceLine(4, "return false;"); strclass.AppendSpaceLine(3, "}"); strclass.AppendSpaceLine(2, "}"); return strclass.ToString(); }
/// <summary> /// ����sql����еIJ����б�(���磺���� Exists Delete GetModel ��where������ֵ) /// </summary> /// <param name="keys"></param> /// <returns></returns> public string GetPreParameter(List<ColumnInfo> keys, bool IdentityisPrior) { StringPlus strclass = new StringPlus(); StringPlus strclass2 = new StringPlus(); strclass.AppendSpaceLine(3, "" + DbParaHead + "Parameter[] parameters = {"); ColumnInfo field = Maticsoft.CodeHelper.CodeCommon.GetIdentityKey(keys); if ((IdentityisPrior) && (field != null)) //�б�ʶ�ֶ� { strclass.AppendSpaceLine(5, "new " + DbParaHead + "Parameter(\"" + preParameter + "" + field.ColumnName + "\", " + DbParaDbType + "." + CodeCommon.DbTypeLength(dbobj.DbType, field.TypeName, "") + ")"); strclass2.AppendSpaceLine(3, "parameters[0].Value = " + field.ColumnName + ";"); } else { int n = 0; foreach (ColumnInfo key in keys) { if (key.IsPrimaryKey) { strclass.AppendSpaceLine(5, "new " + DbParaHead + "Parameter(\"" + preParameter + "" + key.ColumnName + "\", " + DbParaDbType + "." + CodeCommon.DbTypeLength(dbobj.DbType, key.TypeName, "") + "),"); strclass2.AppendSpaceLine(3, "parameters[" + n.ToString() + "].Value = " + key.ColumnName + ";"); n++; } } strclass.DelLastComma(); } strclass.AppendLine("};"); strclass.Append(strclass2.Value); return strclass.Value; }
/// <summary> /// �õ�Where������� - Parameter��ʽ (���磺����Exists Delete GetModel ��where) /// </summary> /// <param name="keys"></param> /// <returns></returns> public string GetWhereExpression(List<ColumnInfo> keys, bool IdentityisPrior) { StringPlus strClass = new StringPlus(); ColumnInfo field = Maticsoft.CodeHelper.CodeCommon.GetIdentityKey(keys); if ((IdentityisPrior) && (field != null)) //�б�ʶ�ֶ� { strClass.Append(field.ColumnName + "=" + preParameter + field.ColumnName); } else { foreach (ColumnInfo key in keys) { if (key.IsPrimaryKey) { strClass.Append(key.ColumnName + "=" + preParameter + key.ColumnName + " and "); } } strClass.DelLastChar("and"); } return strClass.Value; }
public string GetDALCode(bool Maxid, bool Exists, bool Add, bool Update, bool Delete, bool GetModel, bool List) { StringPlus strclass = new StringPlus(); strclass.AppendLine("using System;"); strclass.AppendLine("using System.Data;"); strclass.AppendLine("using System.Text;"); strclass.AppendLine("using System.Collections.Generic;"); switch (dbobj.DbType) { case "SQL2005": case "SQL2008": case "SQL2012": strclass.AppendLine("using System.Data.SqlClient;"); break; case "SQL2000": strclass.AppendLine("using System.Data.SqlClient;"); break; case "Oracle": strclass.AppendLine("using System.Data.OracleClient;"); break; case "MySQL": strclass.AppendLine("using MySql.Data.MySqlClient;"); break; case "OleDb": strclass.AppendLine("using System.Data.OleDb;"); break; case "SQLite": strclass.AppendLine("using System.Data.SQLite;"); break; } if (IDALpath != "") { strclass.AppendLine("using " + IDALpath + ";"); } // strclass.AppendLine("using Maticsoft.DBUtility;//Please add references"); // ���峬 2014-10-21 ��Ϊ����Ŀ���ݿ���� strclass.AppendLine("using " + NameSpace + ".DBUtility;"); strclass.AppendLine("namespace " + DALpath); strclass.AppendLine("{"); strclass.AppendSpaceLine(1, "/// <summary>"); strclass.AppendSpaceLine(1, "/// " + Languagelist["summary"].ToString() + ":" + DALName); strclass.AppendSpaceLine(1, "/// </summary>"); strclass.AppendSpace(1, "public partial class " + DALName); if (IClass != "") { strclass.Append(":" + IClass); } strclass.AppendLine(""); strclass.AppendSpaceLine(1, "{"); strclass.AppendSpaceLine(2, "public " + DALName + "()"); strclass.AppendSpaceLine(2, "{}"); strclass.AppendSpaceLine(2, "#region Method"); #region �������� if (Maxid) { strclass.AppendLine(CreatGetMaxID()); } if (Exists) { strclass.AppendLine(CreatExists()); } if (Add) { strclass.AppendLine(CreatAdd()); } if (Update) { strclass.AppendLine(CreatUpdate()); } if (Delete) { strclass.AppendLine(CreatDelete()); } if (GetModel) { strclass.AppendLine(CreatGetModel()); strclass.AppendLine(CreatDataRowToModel()); } if (List) { strclass.AppendLine(CreatGetList()); strclass.AppendLine(CreatGetListByPage()); strclass.AppendLine(CreatGetListByPageProc()); } #endregion strclass.AppendSpaceLine(2, "#endregion Method"); //strclass.AppendSpaceLine(2, "#region MethodEx"); //strclass.AppendLine(""); //strclass.AppendSpaceLine(2, "#endregion MethodEx"); strclass.AppendSpaceLine(1, "}"); strclass.AppendLine("}"); strclass.AppendLine(""); return strclass.ToString(); }
/// <summary> /// �õ�GetModel()�Ĵ��� /// </summary> /// <param name="DbName"></param> /// <param name="_tablename"></param> /// <param name="_key"></param> /// <param name="ModelName"></param> /// <returns></returns> public string CreatGetModel() { if (ModelSpace == "") { //ModelSpace = "ModelClassName"; ; } StringPlus strclass = new StringPlus(); strclass.AppendLine(); strclass.AppendSpaceLine(2, "/// <summary>"); strclass.AppendSpaceLine(2, "/// " + Languagelist["summaryGetModel"].ToString()); strclass.AppendSpaceLine(2, "/// </summary>"); strclass.AppendSpaceLine(2, "public " + ModelSpace + " GetModel(" + Maticsoft.CodeHelper.CodeCommon.GetInParameter(Keys, true) + ")"); strclass.AppendSpaceLine(2, "{"); strclass.AppendSpaceLine(3, "StringBuilder strSql=new StringBuilder();"); strclass.AppendSpace(3, "strSql.Append(\"select "); if (dbobj.DbType == "SQL2005" || dbobj.DbType == "SQL2000" || dbobj.DbType == "SQL2008" || dbobj.DbType == "SQL2012") { strclass.Append(" top 1 "); } strclass.AppendLine(" \");"); strclass.AppendSpaceLine(3, "strSql.Append(\" " + Fieldstrlist + " \");"); strclass.AppendSpaceLine(3, "strSql.Append(\" from " + _tablename + " \");"); strclass.AppendSpaceLine(3, "strSql.Append(\" where " + Maticsoft.CodeHelper.CodeCommon.GetWhereExpression(Keys, true) + "\" );"); strclass.AppendSpaceLine(3, ModelSpace + " model=new " + ModelSpace + "();"); strclass.AppendSpaceLine(3, "DataSet ds=" + DbHelperName + ".Query(strSql.ToString());"); strclass.AppendSpaceLine(3, "if(ds.Tables[0].Rows.Count>0)"); strclass.AppendSpaceLine(3, "{"); #region /* foreach (ColumnInfo field in Fieldlist) { string columnName = field.ColumnName; string columnType = field.TypeName; strclass.AppendSpaceLine(4, "if(ds.Tables[0].Rows[0][\"" + columnName + "\"]!=null && ds.Tables[0].Rows[0][\"" + columnName + "\"].ToString()!=\"\")"); strclass.AppendSpaceLine(4, "{"); #region switch (CodeCommon.DbTypeToCS(columnType)) { case "int": { //strclass.AppendSpaceLine(4, "if(ds.Tables[0].Rows[0][\"" + columnName + "\"].ToString()!=\"\")"); //strclass.AppendSpaceLine(4, "{"); strclass.AppendSpaceLine(5, "model." + columnName + "=int.Parse(ds.Tables[0].Rows[0][\"" + columnName + "\"].ToString());"); //strclass.AppendSpaceLine(4, "}"); } break; case "long": { //strclass.AppendSpaceLine(4, "if(ds.Tables[0].Rows[0][\"" + columnName + "\"].ToString()!=\"\")"); //strclass.AppendSpaceLine(4, "{"); strclass.AppendSpaceLine(5, "model." + columnName + "=long.Parse(ds.Tables[0].Rows[0][\"" + columnName + "\"].ToString());"); //strclass.AppendSpaceLine(4, "}"); } break; case "decimal": { //strclass.AppendSpaceLine(4, "if(ds.Tables[0].Rows[0][\"" + columnName + "\"].ToString()!=\"\")"); //strclass.AppendSpaceLine(4, "{"); strclass.AppendSpaceLine(5, "model." + columnName + "=decimal.Parse(ds.Tables[0].Rows[0][\"" + columnName + "\"].ToString());"); //strclass.AppendSpaceLine(4, "}"); } break; case "float": { //strclass.AppendSpaceLine(4, "if(ds.Tables[0].Rows[0][\"" + columnName + "\"].ToString()!=\"\")"); //strclass.AppendSpaceLine(4, "{"); strclass.AppendSpaceLine(5, "model." + columnName + "=float.Parse(ds.Tables[0].Rows[0][\"" + columnName + "\"].ToString());"); //strclass.AppendSpaceLine(4, "}"); } break; case "DateTime": { //strclass.AppendSpaceLine(4, "if(ds.Tables[0].Rows[0][\"" + columnName + "\"].ToString()!=\"\")"); //strclass.AppendSpaceLine(4, "{"); strclass.AppendSpaceLine(5, "model." + columnName + "=DateTime.Parse(ds.Tables[0].Rows[0][\"" + columnName + "\"].ToString());"); //strclass.AppendSpaceLine(4, "}"); } break; case "string": { //strclass.AppendSpaceLine(4, "if(ds.Tables[0].Rows[0][\"" + columnName + "\"]!=null)"); //strclass.AppendSpaceLine(4, "{"); strclass.AppendSpaceLine(5, "model." + columnName + "=ds.Tables[0].Rows[0][\"" + columnName + "\"].ToString();"); //strclass.AppendSpaceLine(4, "}"); } break; case "bool": { //strclass.AppendSpaceLine(4, "if(ds.Tables[0].Rows[0][\"" + columnName + "\"].ToString()!=\"\")"); //strclass.AppendSpaceLine(4, "{"); strclass.AppendSpaceLine(5, "if((ds.Tables[0].Rows[0][\"" + columnName + "\"].ToString()==\"1\")||(ds.Tables[0].Rows[0][\"" + columnName + "\"].ToString().ToLower()==\"true\"))"); strclass.AppendSpaceLine(5, "{"); strclass.AppendSpaceLine(6, "model." + columnName + "=true;"); strclass.AppendSpaceLine(5, "}"); strclass.AppendSpaceLine(5, "else"); strclass.AppendSpaceLine(5, "{"); strclass.AppendSpaceLine(6, "model." + columnName + "=false;"); strclass.AppendSpaceLine(5, "}"); //strclass.AppendSpaceLine(4, "}"); } break; case "byte[]": { //strclass.AppendSpaceLine(4, "if(ds.Tables[0].Rows[0][\"" + columnName + "\"].ToString()!=\"\")"); //strclass.AppendSpaceLine(4, "{"); strclass.AppendSpaceLine(5, "model." + columnName + "=(byte[])ds.Tables[0].Rows[0][\"" + columnName + "\"];"); //strclass.AppendSpaceLine(4, "}"); } break; case "uniqueidentifier": case "Guid": { //strclass.AppendSpaceLine(4, "if(ds.Tables[0].Rows[0][\"" + columnName + "\"].ToString()!=\"\")"); //strclass.AppendSpaceLine(4, "{"); strclass.AppendSpaceLine(5, "model." + columnName + "=new Guid(ds.Tables[0].Rows[0][\"" + columnName + "\"].ToString());"); //strclass.AppendSpaceLine(4, "}"); } break; default: strclass.AppendSpaceLine(5, "//model." + columnName + "=ds.Tables[0].Rows[0][\"" + columnName + "\"].ToString();"); break; } #endregion strclass.AppendSpaceLine(4, "}"); } */ #endregion strclass.AppendSpaceLine(4, "return DataRowToModel(ds.Tables[0].Rows[0]);"); strclass.AppendSpaceLine(3, "}"); strclass.AppendSpaceLine(3, "else"); strclass.AppendSpaceLine(3, "{"); strclass.AppendSpaceLine(4, "return null;"); strclass.AppendSpaceLine(3, "}"); strclass.AppendSpace(2, "}"); return strclass.ToString(); }
private string BuilderModel() { StringPlus plus = new StringPlus(); StringPlus plus2 = new StringPlus(); StringPlus plus3 = new StringPlus(); plus.AppendSpaceLine(2, "#region Model"); foreach (ColumnInfo column in Columns) { plus2.AppendSpaceLine(2, "private " + column.TypeName + " _" + column.ColumnName + ";"); plus3.AppendSpaceLine(2, "/// <summary>"); plus3.AppendSpaceLine(2, "/// " + column.DeText); plus3.AppendSpaceLine(2, "/// </summary>"); plus3.AppendSpaceLine(2, "public " + column.TypeName + " " + column.ColumnName); plus3.AppendSpaceLine(2, "{"); plus3.AppendSpaceLine(3, "get{ return _" + column.ColumnName + "; }"); plus3.AppendSpaceLine(3, "set"); plus3.AppendSpaceLine(3, "{"); plus3.AppendSpaceLine(4, "this.OnPropertyValueChange(_." + column.ColumnName + ",_" + column.ColumnName + ",value);"); plus3.AppendSpaceLine(4, "this._" + column.ColumnName + "=value;"); plus3.AppendSpaceLine(3, "}"); plus3.AppendSpaceLine(2, "}"); } plus.Append(plus2.Value); plus.Append(plus3.Value); plus.AppendSpaceLine(2, "#endregion"); return plus.ToString(); }
/// <summary> /// �õ�Add()�Ĵ��� /// </summary> public string CreatAdd() { StringPlus strclass = new StringPlus(); StringPlus strclass1 = new StringPlus(); StringPlus strclass2 = new StringPlus(); StringPlus strclass3 = new StringPlus(); StringPlus strclass4 = new StringPlus(); strclass.AppendLine(); strclass.AppendSpaceLine(2, "/// <summary>"); strclass.AppendSpaceLine(2, "/// ����һ������,�����ӱ�����"); strclass.AppendSpaceLine(2, "/// </summary>"); string strretu = "void"; if ((dbobj.DbType == "SQL2000" || dbobj.DbType == "SQL2005" || dbobj.DbType == "SQL2008" || dbobj.DbType == "SQL2012") && (IsHasIdentity)) { strretu = "int"; } //��������ͷ string strFun = CodeCommon.Space(2) + "public " + strretu + " Add(" + ModelSpaceParent + " model)"; strclass.AppendLine(strFun); strclass.AppendSpaceLine(2, "{"); strclass.AppendSpaceLine(3, "StringBuilder strSql=new StringBuilder();"); strclass.AppendSpaceLine(3, "strSql.Append(\"insert into " + _tablenameparent + "(\");"); strclass1.AppendSpace(3, "strSql.Append(\""); int n = 0; int nkey = 0; foreach (ColumnInfo field in FieldlistParent) { string columnName = field.ColumnName; string columnType = field.TypeName; bool IsIdentity = field.IsIdentity; string Length = field.Length; if (field.IsIdentity) { //nkey = n; continue; } strclass3.AppendSpaceLine(5, "new " + DbParaHead + "Parameter(\"" + preParameter + columnName + "\", " + DbParaDbType + "." + CodeCommon.DbTypeLength(dbobj.DbType, columnType, Length) + "),"); strclass1.Append(columnName + ","); strclass2.Append(preParameter + columnName + ","); strclass4.AppendSpaceLine(3, "parameters[" + n + "].Value = model." + columnName + ";"); n++; } if ((dbobj.DbType == "SQL2000" || dbobj.DbType == "SQL2005" || dbobj.DbType == "SQL2008" || dbobj.DbType == "SQL2012") && (IsHasIdentity)) { nkey = n; strclass3.AppendSpaceLine(5, "new SqlParameter(\"@ReturnValue\",SqlDbType.Int),"); strclass4.AppendSpaceLine(3, "parameters[" + nkey.ToString() + "].Direction = ParameterDirection.Output;"); } //ȥ�����Ķ��� strclass1.DelLastComma(); strclass2.DelLastComma(); strclass3.DelLastComma(); strclass1.AppendLine(")\");"); strclass.Append(strclass1.ToString()); strclass.AppendSpaceLine(3, "strSql.Append(\" values (\");"); strclass.AppendSpaceLine(3, "strSql.Append(\"" + strclass2.ToString() + ")\");"); if ((dbobj.DbType == "SQL2000" || dbobj.DbType == "SQL2005" || dbobj.DbType == "SQL2008" || dbobj.DbType == "SQL2012") && (IsHasIdentity)) { strclass.AppendSpaceLine(3, "strSql.Append(\";set @ReturnValue= @@IDENTITY\");"); } strclass.AppendSpaceLine(3, "" + DbParaHead + "Parameter[] parameters = {"); strclass.Append(strclass3.Value); strclass.AppendLine("};"); strclass.AppendLine(strclass4.Value); #region tran strclass.AppendSpaceLine(3, "List<CommandInfo> sqllist = new List<CommandInfo>();"); strclass.AppendSpaceLine(3, "CommandInfo cmd = new CommandInfo(strSql.ToString(), parameters);"); strclass.AppendSpaceLine(3, "sqllist.Add(cmd);"); strclass.AppendSpaceLine(3, "StringBuilder strSql2;"); strclass.AppendSpaceLine(3, "foreach (" + ModelSpaceSon + " models in model." + ModelNameSon + "s)"); strclass.AppendSpaceLine(3, "{"); StringPlus strclass11 = new StringPlus(); StringPlus strclass21 = new StringPlus(); StringPlus strclass31 = new StringPlus(); StringPlus strclass41 = new StringPlus(); //�µ����� strclass.AppendSpaceLine(4, "strSql2=new StringBuilder();"); strclass.AppendSpaceLine(4, "strSql2.Append(\"insert into " + _tablenameson + "(\");"); strclass11.AppendSpace(4, "strSql2.Append(\""); int ns = 0; foreach (ColumnInfo field in FieldlistSon) { string columnName = field.ColumnName; string columnType = field.TypeName; bool IsIdentity = field.IsIdentity; string Length = field.Length; if (field.IsIdentity) { continue; } strclass31.AppendSpaceLine(6, "new " + DbParaHead + "Parameter(\"" + preParameter + columnName + "\", " + DbParaDbType + "." + CodeCommon.DbTypeLength(dbobj.DbType, columnType, Length) + "),"); strclass11.Append(columnName + ","); strclass21.Append(preParameter + columnName + ","); strclass41.AppendSpaceLine(4, "parameters2[" + ns + "].Value = models." + columnName + ";"); ns++; } strclass11.DelLastComma(); strclass21.DelLastComma(); strclass31.DelLastComma(); strclass11.AppendLine(")\");"); strclass.Append(strclass11.ToString()); strclass.AppendSpaceLine(4, "strSql2.Append(\" values (\");"); strclass.AppendSpaceLine(4, "strSql2.Append(\"" + strclass21.ToString() + ")\");"); //if (IsHasIdentity) //{ // strclass.AppendSpaceLine(4, "strSql2.Append(\";select @@IDENTITY\");"); //} strclass.AppendSpaceLine(4, "" + DbParaHead + "Parameter[] parameters2 = {"); strclass.Append(strclass31.Value); strclass.AppendLine("};"); strclass.AppendLine(strclass41.Value); //end�µ����� strclass.AppendSpaceLine(4, "cmd = new CommandInfo(strSql2.ToString(), parameters2);"); strclass.AppendSpaceLine(4, "sqllist.Add(cmd);"); strclass.AppendSpaceLine(3, "}"); #endregion //���¶��巽��ͷ if ((dbobj.DbType == "SQL2000" || dbobj.DbType == "SQL2005" || dbobj.DbType == "SQL2008" || dbobj.DbType == "SQL2012") && (IsHasIdentity)) { strclass.AppendSpaceLine(3, DbHelperName + ".ExecuteSqlTranWithIndentity(sqllist);"); strclass.AppendSpaceLine(3, "return (" + _keyType + ")parameters[" + nkey + "].Value;"); } else { strclass.AppendSpaceLine(3, "" + DbHelperName + ".ExecuteSqlTran(sqllist);"); } strclass.AppendSpace(2, "}"); return strclass.ToString(); }
private string BuilderModel() { StringPlus plus = new StringPlus(); StringPlus plus2 = new StringPlus(); StringPlus plus3 = new StringPlus(); plus.AppendSpaceLine(2, "#region Model"); foreach (ColumnInfo column in Columns) { if (!string.IsNullOrWhiteSpace(column.DefaultVal)) { var val = ""; if (column.TypeName.ToLower().Contains("bool")) { switch (val) { case "b'0'": val = "0"; break; case "b'1'": val = "1"; break; } val = DataUtils.ConvertValue<bool>(column.DefaultVal) ? "true" : "false"; } else if (column.TypeName.ToLower().Contains("string")) { val = "\"" + column.DefaultVal + "\""; } else if (column.TypeName.ToLower().Contains("guid")) { Guid tempGuid; if (Guid.TryParse(column.DefaultVal, out tempGuid)) { val = "Guid.Parse(\"" + column.DefaultVal + "\")"; } else { val = "Guid.NewGuid()"; } } else if (column.TypeName.ToLower().Contains("int")) { val = column.DefaultVal; } else if (column.TypeName.ToLower().Contains("decimal")) { val = column.DefaultVal + "M"; } else if (column.TypeName.ToLower().Contains("float")) { val = column.DefaultVal + "F"; } if (string.IsNullOrWhiteSpace(val)) { plus2.AppendSpaceLine(2, "private " + column.TypeName + " _" + column.ColumnName + ";"); } else { plus2.AppendSpaceLine(2, "private " + column.TypeName + " _" + column.ColumnName + " = " + val + ";"); } } else { plus2.AppendSpaceLine(2, "private " + column.TypeName + " _" + column.ColumnName + ";"); } plus3.AppendSpaceLine(2, "/// <summary>"); plus3.AppendSpaceLine(2, "/// " + column.DeText); plus3.AppendSpaceLine(2, "/// </summary>"); plus3.AppendSpaceLine(2, "public " + column.TypeName + " " + column.ColumnName); plus3.AppendSpaceLine(2, "{"); plus3.AppendSpaceLine(3, "get{ return _" + column.ColumnName + "; }"); plus3.AppendSpaceLine(3, "set"); plus3.AppendSpaceLine(3, "{"); plus3.AppendSpaceLine(4, "this.OnPropertyValueChange(_." + column.ColumnName + ",_" + column.ColumnName + ",value);"); plus3.AppendSpaceLine(4, "this._" + column.ColumnName + "=value;"); plus3.AppendSpaceLine(3, "}"); plus3.AppendSpaceLine(2, "}"); } plus.Append(plus2.Value); plus.Append(plus3.Value); plus.AppendSpaceLine(2, "#endregion"); return plus.ToString(); }
private string BuilderMethod() { StringPlus plus = new StringPlus(); plus.AppendSpaceLine(2, "#region Method"); //只读 if (IsView) { plus.AppendSpaceLine(2, "/// <summary>"); plus.AppendSpaceLine(2, "/// 是否只读"); plus.AppendSpaceLine(2, "/// </summary>"); plus.AppendSpaceLine(2, "public override bool IsReadOnly()"); plus.AppendSpaceLine(2, "{"); plus.AppendSpaceLine(3, "return true;"); plus.AppendSpaceLine(2, "}"); } Model.ColumnInfo identityColumn = Columns.Find(delegate(Model.ColumnInfo col) { return col.IsIdentity; }); if (null != identityColumn) { plus.AppendSpaceLine(2, "/// <summary>"); plus.AppendSpaceLine(2, "/// 获取实体中的标识列"); plus.AppendSpaceLine(2, "/// </summary>"); plus.AppendSpaceLine(2, "public override Field GetIdentityField()"); plus.AppendSpaceLine(2, "{"); plus.AppendSpaceLine(3, "return _." + identityColumn.ColumnName + ";"); plus.AppendSpaceLine(2, "}"); } List<Model.ColumnInfo> primarykeyColumns = Columns.FindAll(delegate(Model.ColumnInfo col) { return col.IsPK; }); if (null != primarykeyColumns && primarykeyColumns.Count > 0) { plus.AppendSpaceLine(2, "/// <summary>"); plus.AppendSpaceLine(2, "/// 获取实体中的主键列"); plus.AppendSpaceLine(2, "/// </summary>"); plus.AppendSpaceLine(2, "public override Field[] GetPrimaryKeyFields()"); plus.AppendSpaceLine(2, "{"); plus.AppendSpaceLine(3, "return new Field[] {"); StringPlus plus2 = new StringPlus(); foreach (Model.ColumnInfo col in primarykeyColumns) { plus2.AppendSpaceLine(4, "_." + col.ColumnName + ","); } plus.Append(plus2.ToString().TrimEnd().Substring(0, plus2.ToString().TrimEnd().Length - 1)); plus.AppendLine("};"); plus.AppendSpaceLine(2, "}"); } plus.AppendSpaceLine(2, "/// <summary>"); plus.AppendSpaceLine(2, "/// 获取列信息"); plus.AppendSpaceLine(2, "/// </summary>"); plus.AppendSpaceLine(2, "public override Field[] GetFields()"); plus.AppendSpaceLine(2, "{"); plus.AppendSpaceLine(3, "return new Field[] {"); StringPlus plus3 = new StringPlus(); foreach (ColumnInfo col in Columns) { plus3.AppendSpaceLine(4, "_." + col.ColumnName + ","); } plus.Append(plus3.ToString().TrimEnd().Substring(0, plus3.ToString().TrimEnd().Length - 1)); plus.AppendLine("};"); plus.AppendSpaceLine(2, "}"); plus.AppendSpaceLine(2, "/// <summary>"); plus.AppendSpaceLine(2, "/// 获取值信息"); plus.AppendSpaceLine(2, "/// </summary>"); plus.AppendSpaceLine(2, "public override object[] GetValues()"); plus.AppendSpaceLine(2, "{"); plus.AppendSpaceLine(3, "return new object[] {"); StringPlus plus4 = new StringPlus(); foreach (ColumnInfo col in Columns) { plus4.AppendSpaceLine(4, "this._" + col.ColumnName + ","); } plus.Append(plus4.ToString().TrimEnd().Substring(0, plus4.ToString().TrimEnd().Length - 1)); plus.AppendLine("};"); plus.AppendSpaceLine(2, "}"); //2015-08-10注释 //plus.AppendSpaceLine(2, "/// <summary>"); //plus.AppendSpaceLine(2, "/// 给当前实体赋值"); //plus.AppendSpaceLine(2, "/// </summary>"); //plus.AppendSpaceLine(2, "public override void SetPropertyValues(IDataReader reader)"); //plus.AppendSpaceLine(2, "{"); //foreach (ColumnInfo col in Columns) //{ // plus.AppendSpaceLine(3, "this._" + col.ColumnName + " = DataUtils.ConvertValue<" + col.TypeName + ">(reader[\"" + col.ColumnNameRealName + "\"]);"); //} //plus.AppendSpaceLine(2, "}"); //2015-08-10注释 //plus.AppendSpaceLine(2, "/// <summary>"); //plus.AppendSpaceLine(2, "/// 给当前实体赋值"); //plus.AppendSpaceLine(2, "/// </summary>"); //plus.AppendSpaceLine(2, "public override void SetPropertyValues(DataRow row)"); //plus.AppendSpaceLine(2, "{"); //foreach (ColumnInfo col in Columns) //{ // plus.AppendSpaceLine(3, "this._" + col.ColumnName + " = DataUtils.ConvertValue<" + col.TypeName + ">(row[\"" + col.ColumnNameRealName + "\"]);"); //} //plus.AppendSpaceLine(2, "}"); plus.AppendSpaceLine(2, "#endregion"); plus.AppendLine(); plus.AppendSpaceLine(2, "#region _Field"); plus.AppendSpaceLine(2, "/// <summary>"); plus.AppendSpaceLine(2, "/// 字段信息"); plus.AppendSpaceLine(2, "/// </summary>"); plus.AppendSpaceLine(2, "public class _"); plus.AppendSpaceLine(2, "{"); plus.AppendSpaceLine(3, "/// <summary>"); plus.AppendSpaceLine(3, "/// * "); plus.AppendSpaceLine(3, "/// </summary>"); plus.AppendSpaceLine(3, "public readonly static Field All = new Field(\"*\",\"" + TableName + "\");"); foreach (ColumnInfo col in Columns) { plus.AppendSpaceLine(3, "/// <summary>"); plus.AppendSpaceLine(3, "/// " + col.DeText); plus.AppendSpaceLine(3, "/// </summary>"); plus.AppendSpaceLine(3, "public readonly static Field " + col.ColumnName + " = new Field(\"" + col.ColumnNameRealName + "\",\"" + TableName + "\",\"" + (string.IsNullOrEmpty(col.DeText) ? col.ColumnNameRealName : col.DeText) + "\");"); } plus.AppendSpaceLine(2, "}"); plus.AppendSpaceLine(2, "#endregion"); plus.AppendLine(); return plus.ToString(); }
public string GetIDALCode(bool Maxid, bool Exists, bool Add, bool Update, bool Delete, bool GetModel, bool List) { StringPlus strclass = new StringPlus(); strclass.AppendLine("using System;"); strclass.AppendLine("using System.Data;"); strclass.AppendLine("using System.Collections.Generic;"); strclass.AppendLine("namespace " + IDALpath); strclass.AppendLine("{"); strclass.AppendSpaceLine(1, "/// <summary>"); strclass.AppendSpaceLine(1, "/// 接口层" + TableDescription); strclass.AppendSpaceLine(1, "/// </summary>"); strclass.AppendSpaceLine(1, "public partial interface " + IClass); strclass.AppendSpaceLine(1, "{"); strclass.AppendLine(); strclass.AppendSpaceLine(2, "#region 成员方法"); if (Maxid) { strclass.Append(CreatGetMaxID()); } if (Exists) { strclass.Append(CreatExists()); } if (Add) { strclass.Append(CreatAdd()); } if (Update) { strclass.Append(CreatUpdate()); } if (Delete) { strclass.Append(CreatDelete()); } if (GetModel) { strclass.Append(CreatGetModel()); } if (List) { strclass.Append(CreatGetList()); } strclass.AppendSpaceLine(2, "#endregion 成员方法"); strclass.AppendLine(); //strclass.AppendSpaceLine(2, "#region MethodEx"); //strclass.AppendLine(""); //strclass.AppendSpaceLine(2, "#endregion MethodEx"); strclass.AppendLine(" } "); strclass.AppendLine("}"); return strclass.ToString(); }