📄 builderdal.cs
字号:
strclass.AppendLine("using System.Collections.Generic;");
strclass.AppendLine("using Microsoft.Practices.EnterpriseLibrary.Data;");
strclass.AppendLine("using Microsoft.Practices.EnterpriseLibrary.Data.Sql;");
strclass.AppendLine("using System.Data.Common;");
if (IDALpath != "")
{
strclass.AppendLine("using " + IDALpath + ";");
}
strclass.AppendLine("using Maticsoft.DBUtility;//请先添加引用");
strclass.AppendLine("namespace " + DALpath);
strclass.AppendLine("{");
strclass.AppendSpaceLine(1, "/// <summary>");
strclass.AppendSpaceLine(1, "/// 数据访问类" + DALName + "。");
strclass.AppendSpaceLine(1, "/// </summary>");
strclass.AppendSpace(1, "public class " + DALName);
if (IClass != "")
{
strclass.Append(":" + IClass);
}
strclass.AppendLine("");
strclass.AppendSpaceLine(1, "{");
strclass.AppendSpaceLine(2, "public " + DALName + "()");
strclass.AppendSpaceLine(2, "{}");
strclass.AppendSpaceLine(2, "#region 成员方法");
#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());
}
if (List)
{
strclass.AppendLine(CreatGetList());
strclass.AppendLine(CreatGetListByPageProc());
strclass.AppendLine(CreatGetListArray());
strclass.AppendLine(CreatReaderBind());
}
#endregion
strclass.AppendSpaceLine(2, "#endregion 成员方法");
strclass.AppendSpaceLine(1, "}");
strclass.AppendLine("}");
strclass.AppendLine("");
return strclass.ToString();
}
#endregion
#region 数据层(使用Parameter实现)
/// <summary>
/// 得到最大ID的方法代码
/// </summary>
/// <param name="TabName"></param>
/// <param name="ID"></param>
/// <returns></returns>
public string CreatGetMaxID()
{
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.AppendLine("");
strclass.AppendSpaceLine(2, "/// <summary>");
strclass.AppendSpaceLine(2, "/// 得到最大ID");
strclass.AppendSpaceLine(2, "/// </summary>");
strclass.AppendSpaceLine(2, "public int GetMaxId()");
strclass.AppendSpaceLine(2, "{" );
strclass.AppendSpaceLine(3, "string strsql = \"select max(" + keyname + ")+1 from " + _tablename + "\";");
strclass.AppendSpaceLine(3, "Database db = DatabaseFactory.CreateDatabase();");
strclass.AppendSpaceLine(3, "object obj = db.ExecuteScalar(CommandType.Text, strsql);");
strclass.AppendSpaceLine(3, "if (obj != null && obj != DBNull.Value)");
strclass.AppendSpaceLine(3, "{");
strclass.AppendSpaceLine(4, "return int.Parse(obj.ToString());");
strclass.AppendSpaceLine(3, "}");
strclass.AppendSpaceLine(3, "return 1;");
strclass.AppendSpaceLine(2, "}");
break;
}
}
}
}
return strclass.ToString();
}
/// <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>
/// 得到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, "/// 增加一条数据" );
strclass.AppendSpaceLine(2, "/// </summary>" );
string strretu = "void";
if ((dbobj.DbType == "SQL2000" || dbobj.DbType == "SQL2005") && (IsHasIdentity))
{
strretu ="int";
}
//方法定义头
string strFun = CodeCommon.Space(2) + "public " + strretu + " Add(" + ModelSpace + " model)";
strclass.AppendLine(strFun);
strclass.AppendSpaceLine(2, "{" );
strclass.AppendSpaceLine(3, "StringBuilder strSql=new StringBuilder();" );
strclass.AppendSpaceLine(3, "strSql.Append(\"insert into " + _tablename + "(\");" );
strclass1.AppendSpace(3, "strSql.Append(\"");
foreach (ColumnInfo field in Fieldlist)
{
string columnName = field.ColumnName;
string columnType = field.TypeName;
bool IsIdentity = field.IsIdentity;
string Length = field.Length;
if (field.IsIdentity)
{
continue;
}
strclass1.Append(columnName + ",");
strclass2.Append(preParameter + columnName + ",");
strclass3.AppendSpaceLine(3, "db.AddInParameter(dbCommand, \"" + columnName + "\", DbType." + CSToProcType(columnType) + ", model." + columnName + ");");
}
//去掉最后的逗号
strclass1.DelLastComma();
strclass2.DelLastComma();
//strclass3.DelLastComma();
strclass1.AppendLine(")\");");
strclass.AppendLine(strclass1.ToString());
strclass.AppendSpaceLine(3, "strSql.Append(\" values (\");" );
strclass.AppendSpaceLine(3, "strSql.Append(\"" + strclass2.ToString() + ")\");" );
if ((dbobj.DbType == "SQL2000" || dbobj.DbType == "SQL2005") && (IsHasIdentity))
{
strclass.AppendSpaceLine(3, "strSql.Append(\";select @@IDENTITY\");");
}
strclass.AppendSpaceLine(3, "Database db = DatabaseFactory.CreateDatabase();");
strclass.AppendSpaceLine(3, "DbCommand dbCommand = db.GetSqlStringCommand(strSql.ToString());");
strclass.Append(strclass3.Value);
//重新定义方法头
if ((dbobj.DbType == "SQL2000" || dbobj.DbType == "SQL2005") && (IsHasIdentity))
{
strclass.AppendSpaceLine(3, "int result;");
strclass.AppendSpaceLine(3, "object obj = db.ExecuteScalar(dbCommand);");
strclass.AppendSpaceLine(3, "if(!int.TryParse(obj.ToString(),out result))");
strclass.AppendSpaceLine(3, "{");
strclass.AppendSpaceLine(4, "return 0;");
strclass.AppendSpaceLine(3, "}");
strclass.AppendSpaceLine(3, "return result;");
}
else
{
strclass.AppendSpaceLine(3, "db.ExecuteNonQuery(dbCommand);");
}
strclass.AppendSpace(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();
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>
/// 得到Delete的代码
/// </summary>
/// <param name="_tablename"></param>
/// <param name="_key"></param>
/// <returns></returns>
public string CreatDelete()
{
StringPlus strclass = new StringPlus();
strclass.AppendSpaceLine(2, "/// <summary>");
strclass.AppendSpaceLine(2, "/// 删除一条数据");
strclass.AppendSpaceLine(2, "/// </summary>");
strclass.AppendSpaceLine(2, "public void Delete(" + LTP.CodeHelper.CodeCommon.GetInParameter(Keys) + ")");
strclass.AppendSpaceLine(2, "{");
strclass.AppendSpaceLine(3, KeysNullTip);
strclass.AppendSpaceLine(3, "StringBuilder strSql=new StringBuilder();");
if (dbobj.DbType != "OleDb")
{
strclass.AppendSpaceLine(3, "strSql.Append(\"delete " + _tablename + " \");");
}
else
{
strclass.AppendSpaceLine(3, "strSql.Append(\"delete 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, "db.ExecuteNonQuery(dbCommand);\r\n");
strclass.AppendSpaceLine(2, "}");
return strclass.Value;
}
/// <summary>
/// 得到GetModel()的代码
/// </summary>
/// <param name="DbName"></param>
/// <param name="_tablename"></param>
/// <param name="_key"></param>
/// <param name="ModelName"></param>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -