using System;
using System.Collections.Generic;
using System.Data;
using System.Text;
using SlowX.DAL.Helpers;
namespace SlowX.DAL.Functions
{
/// <summary>
/// 快速的数据库操作
/// </summary>
[Serializable]
public class DataBaseSlowXDALFunctions
{
/// <summary>
/// 清空表
/// </summary>
/// <param name="_dbConnectionString"></param>
/// <param name="_emDataBaseHelper"></param>
/// <param name="_dataBaseVersion"></param>
/// <param name="_tableName"></param>
/// <returns></returns>
public static int Truncate
(
string _dbConnectionString,
SlowX.DAL.Enums.DataBaseHelper.EmDataBaseHelper _emDataBaseHelper,
int _dataBaseVersion,
string _tableName
)
{
int theResult = 0;
SlowX.DAL.Helpers.DBHelper dbHelper
=
SlowX.DAL.Helpers.DBHelper.CreateDBHelper(_dbConnectionString, _emDataBaseHelper, _dataBaseVersion);
try
{
dbHelper.OpenDBHelper();
string SQL = "truncate table " + _tableName;
theResult = dbHelper.ExecuteNonQuery(SQL);
dbHelper.EndDBHelper();
}
catch (Exception err)
{
dbHelper.TranDBHelper();
throw err;
}
finally
{
dbHelper.FinallyDBHelper();
}
return theResult;
}
/// <summary>
/// 清空表
/// </summary>
/// <param name="_tableName"></param>
/// <param name="dbHelper"></param>
/// <returns></returns>
public static int Truncate(string _tableName, DBHelper dbHelper)
{
int theResult = 0;
bool bIsCreate = true;
if (dbHelper == null)
{
dbHelper = SlowX.DAL.Helpers.DBHelper.CreateDBHelper();
}
else
{
// 没有打开链接 //
bIsCreate = dbHelper.IsNotOpen();
}
try
{
if (bIsCreate)
dbHelper.OpenDBHelper();
string SQL = "truncate table " + _tableName;
theResult = dbHelper.ExecuteNonQuery(SQL);
if (bIsCreate)
dbHelper.EndDBHelper();
}
catch (Exception err)
{
if (bIsCreate)
dbHelper.TranDBHelper();
throw err;
}
finally
{
if (bIsCreate)
dbHelper.FinallyDBHelper();
}
return theResult;
}
/// <summary>
/// 清空表
/// </summary>
/// <param name="_tableName"></param>
/// <param name="dbHelper"></param>
/// <returns></returns>
public static int DeleteAll(string _tableName, DBHelper dbHelper)
{
int theResult = 0;
bool bIsCreate = true;
if (dbHelper == null)
{
dbHelper = SlowX.DAL.Helpers.DBHelper.CreateDBHelper();
}
else
{
// 没有打开链接 //
bIsCreate = dbHelper.IsNotOpen();
}
try
{
if (bIsCreate)
dbHelper.OpenDBHelper();
string SQL = "delete from " + _tableName;
theResult = dbHelper.ExecuteNonQuery(SQL);
if (bIsCreate)
dbHelper.EndDBHelper();
}
catch (Exception err)
{
if (bIsCreate)
dbHelper.TranDBHelper();
throw err;
}
finally
{
if (bIsCreate)
dbHelper.FinallyDBHelper();
}
return theResult;
}
/// <summary>
/// 记录数
/// </summary>
/// <param name="_tableName"></param>
/// <param name="dbHelper"></param>
/// <returns></returns>
public static int Count(string _tableName, DBHelper dbHelper)
{
int theResult = 0;
bool bIsCreate = true;
if (dbHelper == null)
{
dbHelper = SlowX.DAL.Helpers.DBHelper.CreateDBHelper();
}
else
{
// 没有打开链接 //
bIsCreate = dbHelper.IsNotOpen();
}
try
{
if (bIsCreate)
dbHelper.OpenDBHelper();
string SQL = "select count(1) from " + _tableName;
object oValue = dbHelper.ExecuteScalar(SQL);
if (!(oValue == null || oValue == DBNull.Value || oValue.ToString().Length == 0))
theResult = Convert.ToInt32(oValue);
if (bIsCreate)
dbHelper.EndDBHelper();
}
catch (Exception err)
{
if (bIsCreate)
dbHelper.TranDBHelper();
throw err;
}
finally
{
if (bIsCreate)
dbHelper.FinallyDBHelper();
}
return theResult;
}
/// <summary>
/// 写入字典数据
/// </summary>
/// <param name="_tableName"></param>
/// <param name="_ID"></param>
/// <param name="_TheName"></param>
/// <param name="_dbConnectionString"></param>
/// <param name="_emDataBaseHelper"></param>
/// <param name="_dataBaseVersion"></param>
/// <returns></returns>
public static int InsertBasicData
(
string _tableName,
long _ID,
string _TheName,
string _dbConnectionString,
SlowX.DAL.Enums.DataBaseHelper.EmDataBaseHelper _emDataBaseHelper,
int _dataBaseVersion
)
{
int theResult = 0;
SlowX.DAL.Helpers.DBHelper dbHelper = SlowX.DAL.Helpers.DBHelper.CreateDBHelper(_dbConnectionString, _emDataBaseHelper, _dataBaseVersion);
try
{
dbHelper.OpenDBHelper();
StringBuilder sb = new StringBuilder();
sb.Append("insert into ");
sb.Append(_tableName);
sb.Append(" (ID,TheName) values(");
sb.Append(_ID.ToString());
sb.Append(",'");
sb.Append(_TheName.Replace("'", "''"));
sb.Append("')");
theResult = dbHelper.ExecuteNonQuery(sb.ToString());
dbHelper.EndDBHelper();
}
catch (Exception err)
{
dbHelper.TranDBHelper();
throw err;
}
finally
{
dbHelper.FinallyDBHelper();
}
return theResult;
}
/// <summary>
/// 写入字典数据
/// </summary>
/// <param name="_tableName"></param>
/// <param name="_ID"></param>
/// <param name="_TheName"></param>
/// <param name="dbHelper"></param>
/// <returns></returns>
public static int InsertBasicData(string _tableName, long _ID, string _TheName, DBHelper dbHelper)
{
int theResult = 0;
bool bIsCreate = true;
if (dbHelper == null)
{
dbHelper = SlowX.DAL.Helpers.DBHelper.CreateDBHelper();
}
else
{
// 没有打开链接 //
bIsCreate = dbHelper.IsNotOpen();
}
try
{
if (bIsCreate)
dbHelper.OpenDBHelper();
StringBuilder sb = new StringBuilder();
sb.Append("insert into ");
sb.Append(_tableName);
sb.Append(" (ID,TheName) values(");
sb.Append(_ID.ToString());
sb.Append(",'");
sb.Append(_TheName.Replace("'", "''"));
sb.Append("')");
theResult = dbHelper.ExecuteNonQuery(sb.ToString());
if (bIsCreate)
dbHelper.EndDBHelper();
}
catch (Exception err)
{
if (bIsCreate)
dbHelper.TranDBHelper();
throw err;
}
finally
{
if (bIsCreate)
dbHelper.FinallyDBHelper();
}
return theResult;
}
/// <summary>
/// 写入字典数据
/// </summary>
/// <param name="_tableName"></param>
/// <param name="_ID"></param>
/// <param name="_TheName"></param>
/// <param name="dbHelper"></param>
/// <returns></returns>
public static int InsertStringBasicData(string _tableName, string _ID, string _TheName, DBHelper dbHelper)
{
int theResult = 0;
bool bIsCreate = true;
if (dbHelper == null)
{
dbHelper = SlowX.DAL.Helpers.DBHelper.CreateDBHelper();
}
else
{
// 没有打开链接 //
bIsCreate = dbHelper.IsNotOpen();
}
try
{
if (bIsCreate)
dbHelper.OpenDBHelper();
StringBuilder sb = new StringBuilder();
sb.Append("insert into ");
sb.Append(_tableName);
sb.Append(" (ID,TheName) values('");
sb.Append(_ID.Replace("'","''"));
sb.Append("','");
sb.Append(_TheName.Replace("'", "''"));
sb.Append("')");
theResult = dbHelper.ExecuteNonQuery(sb.ToString());
if (bIsCreate)
dbHelper.EndDBHelper();
}
catch (Exception err)
{
if (bIsCreate)
dbHelper.TranDBHelper();
throw err;
}
finally
{
if (bIsCreate)
dbHelper.FinallyDBHelper();
}
return theResult;
}
/// <summary>
/// 更新字段名
/// </summary>
/// <param name="_tableName"></param>
/// <param name="_columnName"></param>
/// <param name="_columnValue"></param>
/// <param name="_ID"></param>
/// <param name="dbHelper"></param>
/// <returns></returns>
public static int UpdateColumnName(string _tableName, string _columnName, string _columnValue, long _ID, DBHelper dbHelper)
{
int theResult = 0;
bool bIsCreate = true;
if (dbHelper == null)
{
dbHelper = SlowX.DAL.Helpers.DBHelper.CreateDBHelper();
}
else
{
// 没有打开链接 //
bIsCreate = dbHelper.IsNotOpen();
}
try
{
if (bIsCreate)
dbHelper.OpenDBHelper();
StringBuilder sb = new StringBuilder();
sb.Append("update ");
sb.Append(_tableName);
sb.Append(" set ");
sb.Append(_columnName);
sb.Append(" = '");
sb.Append(_columnValue.Replace("'", "''"));
sb.Append("' where ID = ");
sb.Append(_ID.ToString());
theResult = dbHelper.ExecuteNonQuery(sb.ToString());
if (bIsCreate)
dbHelper.EndDBHelper();
}
catch (Exception err)
{
if (bIsCreate)
dbHelper.TranDBHelper();
throw err;
}
finally
{
if (bIsCreate)
dbHelper.FinallyDBHelper();
}
return theResult;
}
/// <summary>
/// 分页显示
/// </summary>
/// <param name="_dbConnectionString"></param>
/// <param name="_emDataBaseHelper"></param>
/// <param name="_dataBaseVersion"></param>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="pkName"></param>
/// <param name="_tableName"></param>
/// <returns></returns>
public static DataSet PageList
(
string _dbConnectionString,
SlowX.DAL.Enums.DataBaseHelper.EmDataBaseHelper _emDataBaseHelper,
int _dataBaseVersion,
int pageIndex,
int pageSize,
string pkName,
string _tableName
)
{
if(pageSize == 0)
pageSize = int.MaxValue;
DataSet theResult = null;
SlowX.DAL.Helpers.DBHelper dbHelper
=
SlowX.DAL.Helpers.DBHelper.CreateDBHelper(_dbConnectionString, _emDataBaseHelper, _dataBaseVersion);
try
{
dbHelper.OpenDBHelper();
string SQL = SQLSlowXDALFunctions.PageList
(
"*",
_tableName,
"",
pkName + " asc ",
pkName,
pageIndex,
pageSize,
_emDataBaseHelper,
_dataBaseVersion
);
theResult = dbHelper.ExecuteDataSet(SQL);
dbHelper.EndDBHelper();
}
catch (Exception err)
{
dbHelper.TranDBHelper();
throw err;
}
finally
{
dbHelper.FinallyDBHelper();
}
return theResult;
}
/// <summary>
/// 分页显示
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="pkName"></param>
/// <param name="_tableName"></param>
/// <param name="dbHelper"></param>
/// <returns></returns>
public static DataSet PageList
(
int pageIndex,
int pageSize,
string pkName,
string _tableName,
DBHelper dbHelper
)
{
if (pageSize == 0)
pageSize = int.MaxValue;
DataSet theResult = null;
bool bIsCreate = true;
if (dbHelper == null)
{
dbHelper = SlowX.DAL.Helpers.DBHelper.CreateDBHelper();
}
else
{
// 没有打开链接 //
bIsCreate = dbHelper.IsNotOpen();
}
try
{
if (bIsCreate)
dbHelper.OpenDBHelper();
string SQL = SQLSlowXDALFunctions.PageList
(
"*",
_tableName,
"",
pkName + " asc ",
pkName,
pageIndex,
pageSize,
dbHelper.GetEmDataBaseHelper(),
dbHelper.GetDataBaseVersion()
);
theResult = dbHelper.ExecuteDataSet(SQL);
if (bIsCreate)
dbHelper.EndDBHelper();
}
catch (Exception err)
{
if (bIsCreate)
dbHelper.TranDBHelper();
throw err;
}
finally
{
if (bIsCreate)
dbHelper.FinallyDBHelper();
}
return theResult;
}
}
}
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Text;
using SlowX.DAL.Helpers;
namespace SlowX.DAL.Functions
{
/// <summary>
/// SQL语句相关的代码
/// </summary>
[Serializable]
public class SQLSlowXDALFunctions
{
/// <summary>
/// 清空表
/// </summary>
/// <param name="_tableName"></param>
/// <returns></returns>
public static string Truncate(string _tableName)
{
return "truncate table " + _tableName;
}
/// <summary>
/// "select count(1) from " + _tableName
/// </summary>
/// <param name="_tableName"></param>
/// <returns></returns>
public static string Count(string _tableName)
{
return "select count(1) from " + _tableName;
}
/// <summary>
/// "select * from " + _tableName
/// </summary>
/// <param name="_tableName"></param>
/// <returns></returns>
public static string Select(string _tableName)
{
return "select * from " + _tableName;
}
/// <summary>
/// select * from " + tableName + " where id = '" + Id.Replace("'", "''") + "'"
/// </summary>
/// <param name="tableName"></param>
/// <param name="Id"></param>
/// <returns></returns>
public static string GetRow(string tableName, string Id)
{
return "select * from " + tableName + " where id = '" + Id.Replace("'", "''") + "'";
}
/// <summary>
/// "select * from " + tableName + " where id = " + Id.ToString();
/// </summary>
/// <param name="tableName"></param>
/// <param name="Id"></param>
/// <returns></returns>
public static string GetRow(string tableName, long Id)
{
return "select * from " + tableName + " where id = " + Id.ToString();
}
/// <summary>
/// "select " + columnName + " from " + tableName
/// </summary>
/// <param name="tableName"></param>
/// <param name="columnName"></param>
/// <returns></returns>
public static string SelectColumn(string tableName, string columnName)
{
return "select " + columnName + " from " + tableName;
}
/// <summary>
/// Top Select 相关的语句
/// </summary>
/// <param name="select"></param>
/// <param name="from"></param>
/// <param name="where"></param>
/// <param name="orderby"></param>
/// <param name="topNum"></param>
/// <param name="_emDataBaseHelper"></param>
/// <returns></returns>
public static string TopSelect
(
string select,
string from,
string where,
string orderby,
int topNum,
SlowX.DAL.Enums.DataBaseHelper.EmDataBaseHelper _emDataBaseHelper)
{
StringBuilder theResult = new StringBuilder();
switch (_emDataBaseHelper)
{
case Enums.DataBaseHelper.EmDataBaseHelper.Oracle:
// SQL = "select slx.* from (" + SQL + ")slx where rownum <= " + top.ToString();
theResult.Append("select slx.* from (");
theResult.Append("select ");
theResult.Append(select);
theResult.Append(" from ");
theResult.Append(from);
if (where != null && where.Length > 0)
{
theResult.Append(" where ");
theResult.Append(where);
}
if (orderby != null && orderby.Length > 0)
{
theResult.Append(" order by ");
theResult.Append(orderby);
}
theResult.Append(")slx where rownum <= ");
theResult.Append(topNum.ToString());
break;
default:
theResult.Append("select top ");
theResult.Append(topNum.ToString());
theResult.Append(" ");
theResult.Append(select);
theResult.Append(" from ");
theResult.Append(from);
if (where != null && where.Length > 0)
{
theResult.Append(" where ");
theResult.Append(where);
}
if (orderby != null && orderby.Length > 0)
{
theResult.Append(" order by ");
theResult.Append(orderby);
}
break;
}
return theResult.ToString();
}
/// <summary>
/// Oracle分页用的select语句
/// </summary>
/// <param name="SQL"></param>
/// <param name="iPageIndex"></param>
/// <param name="iPageSize"></param>
/// <returns></returns>
public static string OraclePageListSelect
(
string SQL,
int iPageIndex,
int iPageSize
)
{
if(iPageIndex == 0)
return "select slx.* from (" + SQL + ")slx where rownum <= " + iPageSize.ToString();
int startIndex = iPageIndex * iPageSize;
return "select * from (select a.*, rownum as p__SqlRowNumberValue from ("
+ SQL + ")a where rownum <= " + (startIndex + iPageSize).ToString() + ") where p__SqlRowNumberValue > " + startIndex;
}
/// <summary>
/// Oracle分页用的select语句
/// </summary>
/// <param name="SQL"></param>
/// <param name="startIndex"></param>
/// <param name="iPageSize"></param>
/// <returns></returns>
public static string OracleStartIndexListSelect
(
string SQL,
int startIndex,
int iPageSize
)
{
if (startIndex == 0)
return "select slx.* from (" + SQL + ")slx where rownum <= " + iPageSize.ToString();
return "select * from (select a.*, rownum as p__SqlRowNumberValue from ("
+ SQL + ")a where rownum <= " + (startIndex + iPageSize).ToString() + ") where p__SqlRowNumberValue > " + startIndex;
}
/// <summary>
/// SQLServer2005以上的分页算法
/// </summary>
/// <param name="sqlSelectResult"></param>
/// <param name="sqlFromResult"></param>
/// <param name="sqlWhereResult"></param>
/// <param name="sqlOrderResult"></param>
/// <param name="pageIndex"></param>
/// <param name="iPageSize"></param>
/// <returns></returns>
public static string SqlServerRowNumberPageListSelect
(
string sqlSelectResult,
string sqlFromResult,
string sqlWhereResult,
string sqlOrderResult,
int pageIndex,
int iPageSize
)
{
int startIndex = pageIndex * iPageSize;
return SqlServerRowNumberStartIndexListSelect
(
sqlSelectResult,
sqlFromResult,
sqlWhereResult,
sqlOrderResult,
startIndex,
iPageSize
);
}
/// <summary>
/// SQLServer2005以上的分页算法
/// </summary>
/// <param name="sqlSelectResult"></param>
/// <param name="sqlFromResult"></param>
/// <param name="sqlWhereResult"></param>
/// <param name="sqlOrderResult"></param>
/// <param name="startIndex"></param>
/// <param name="iPageSize"></param>
/// <returns></returns>
public static string SqlServerRowNumberStartIndexListSelect
(
string sqlSelectResult,
string sqlFromResult,
string sqlWhereResult,
string sqlOrderResult,
int startIndex,
int iPageSize
)
{
// select * from (select ID,TheCode,CurID,CreateTime,UpdateTime,ROW_NUMBER() over (order by ID desc,TheCode asc) as p__SqlRowNumberValue from UTB_CODEX_MEMORY where ID >= @p1)slx where slx.p__SqlRowNumberValue > 10 and slx.p__SqlRowNumberValue <= 20
int toPageNum = iPageSize;
if (toPageNum != int.MaxValue)
toPageNum += startIndex;
StringBuilder theResult = new StringBuilder();
theResult.Append("select * from (select ");
theResult.Append(sqlSelectResult + ",");
theResult.Append("ROW_NUMBER() over (");
theResult.Append("order by ");
theResult.Append(sqlOrderResult);
theResult.Append(") as p__SqlRowNumberValue from ");
theResult.Append(sqlFromResult);
if (sqlWhereResult.Length != 0)
{
theResult.Append(" where ");
theResult.Append(sqlWhereResult);
}
theResult.Append(")slx where ");
theResult.Append("slx.p__SqlRowNumberValue > ");
theResult.Append(startIndex.ToString());
theResult.Append(" and slx.p__SqlRowNumberValue <= ");
theResult.Append(toPageNum.ToString());
return theResult.ToString();
}
/// <summary>
/// SQLServer2000版本(或Access版本的分页算法)
/// </summary>
/// <param name="sqlSelectResult"></param>
/// <param name="sqlFromResult"></param>
/// <param name="sqlWhereResult"></param>
/// <param name="sqlOrderResult"></param>
/// <param name="pkName"></param>
/// <param name="pageIndex"></param>
/// <param name="iPageSize"></param>
/// <returns></returns>
public static string SqlNotInModelPageListSelect
(
string sqlSelectResult,
string sqlFromResult,
string sqlWhereResult,
string sqlOrderResult,
string pkName,
int pageIndex,
int iPageSize
)
{
int startIndex = pageIndex * iPageSize;
return SqlNotInModelStartIndexListSelect(sqlSelectResult, sqlFromResult, sqlWhereResult, sqlOrderResult, pkName, startIndex, iPageSize);
}
/// <summary>
/// SQLServer2000版本(或Access版本的分页算法)
/// </summary>
/// <param name="sqlSelectResult"></param>
/// <param name="sqlFromResult"></param>
/// <param name="sqlWhereResult"></param>
/// <param name="sqlOrderResult"></param>
/// <param name="pkName"></param>
/// <param name="startIndex"></param>
/// <param name="iPageSize"></param>
/// <returns></returns>
public static string SqlNotInModelStartIndexListSelect
(
string sqlSelectResult,
string sqlFromResult,
string sqlWhereResult,
string sqlOrderResult,
string pkName,
int startIndex,
int iPageSize
)
{
StringBuilder theResult = new StringBuilder();
if (startIndex == 0)
{
theResult.Append("select ");
if (iPageSize != int.MaxValue)
{
theResult.Append("top " + iPageSize.ToString() + " ");
}
theResult.Append(sqlSelectResult);
theResult.Append(" from ");
theResult.Append(sqlFromResult);
if (sqlWhereResult != null && sqlWhereResult.Length > 0)
{
theResult.Append(" where ");
theResult.Append(sqlWhereResult);
}
if (sqlOrderResult != null && sqlOrderResult.Length > 0)
{
theResult.Append(" order by ");
theResult.Append(sqlOrderResult);
}
return theResult.ToString();
}
// select top 10 ID,TheCode,CurID,CreateTime,UpdateTime from UTB_CODEX_MEMORY where ID not in (select top 10 ID from UTB_CODEX_MEMORY order by ID desc,TheCode asc) order by ID desc,TheCode asc
theResult.Append("select ");
if (iPageSize != int.MaxValue)
{
theResult.Append("top " + iPageSize.ToString() + " ");
}
theResult.Append(sqlSelectResult);
theResult.Append(" from ");
theResult.Append(sqlFromResult);
if (sqlWhereResult.Length != 0)
{
theResult.Append(" where ");
theResult.Append("(");
theResult.Append(sqlWhereResult);
theResult.Append(") and ");
}
else
{
theResult.Append(" where ");
}
theResult.Append(pkName);
theResult.Append(" not in (");
theResult.Append("select top ");
theResult.Append(startIndex.ToString());
theResult.Append(" ");
theResult.Append(pkName);
theResult.Append(" from ");
theResult.Append(sqlFromResult);
if (sqlWhereResult.Length != 0)
{
theResult.Append(" where ");
theResult.Append(sqlWhereResult);
}
if (sqlOrderResult.Length != 0)
{
theResult.Append(" order by ");
theResult.Append(sqlOrderResult);
}
theResult.Append(")");
if (sqlOrderResult.Length != 0)
{
theResult.Append(" order by ");
theResult.Append(sqlOrderResult);
}
return theResult.ToString();
}
/// <summary>
/// 合并成Select的SQL语句
/// </summary>
/// <param name="sqlSelectResult"></param>
/// <param name="sqlFromResult"></param>
/// <param name="sqlWhereResult"></param>
/// <param name="sqlOrderResult"></param>
/// <returns></returns>
public static string ToSelectSQL
(
string sqlSelectResult,
string sqlFromResult,
string sqlWhereResult,
string sqlOrderResult
)
{
StringBuilder theResult = new StringBuilder();
theResult.Append("select ");
theResult.Append(sqlSelectResult);
theResult.Append(" from ");
theResult.Append(sqlFromResult);
if (sqlWhereResult != null && sqlWhereResult.Length > 0)
{
theResult.Append(" where ");
theResult.Append(sqlWhereResult);
}
if (sqlOrderResult != null && sqlOrderResult.Length > 0)
{
theResult.Append(" order by ");
theResult.Append(sqlOrderResult);
}
return theResult.ToString();
}
/// <summary>
/// 合并成Count的SQL语句
/// </summary>
/// <param name="sqlFromResult"></param>
/// <param name="sqlWhereResult"></param>
/// <returns></returns>
public static string ToCountSQL
(
string sqlFromResult,
string sqlWhereResult
)
{
StringBuilder theResult = new StringBuilder();
theResult.Append("select count(1) from ");
theResult.Append(sqlFromResult);
if (sqlWhereResult != null && sqlWhereResult.Length > 0)
{
theResult.Append(" where ");
theResult.Append(sqlWhereResult);
}
return theResult.ToString();
}
/// <summary>
///
/// </summary>
/// <param name="sqlSelectResult"></param>
/// <param name="sqlFromResult"></param>
/// <param name="sqlWhereResult"></param>
/// <param name="sqlOrderResult"></param>
/// <param name="pkName"></param>
/// <param name="pageIndex"></param>
/// <param name="iPageSize"></param>
/// <param name="iRowCount"></param>
/// <param name="_emDataBaseHelper"></param>
/// <param name="_dataBaseVersion"></param>
/// <returns></returns>
public static string PageList
(
string sqlSelectResult,
string sqlFromResult,
string sqlWhereResult,
string sqlOrderResult,
string pkName,
int pageIndex,
int iPageSize,
SlowX.DAL.Enums.DataBaseHelper.EmDataBaseHelper _emDataBaseHelper,
int _dataBaseVersion
)
{
if (pageIndex == 0 && iPageSize == int.MaxValue)
return ToSelectSQL(sqlSelectResult, sqlFromResult, sqlWhereResult, sqlOrderResult);
switch (_emDataBaseHelper)
{
case Enums.DataBaseHelper.EmDataBaseHelper.Oracle:
return OraclePageListSelect(ToSelectSQL(sqlSelectResult, sqlFromResult, sqlWhereResult, sqlOrderResult), pageIndex, iPageSize);
case Enums.DataBaseHelper.EmDataBaseHelper.SQLServer:
if(_dataBaseVersion == (int)SlowX.DAL.Enums.SqlServerVersion.EmSqlServerVersion.SqlServer2000)
{
return SqlNotInModelPageListSelect(sqlSelectResult, sqlFromResult, sqlWhereResult, sqlOrderResult, pkName, pageIndex, iPageSize);
}
else
{
return SqlServerRowNumberPageListSelect(sqlSelectResult,sqlFromResult,sqlWhereResult,sqlOrderResult,pageIndex,iPageSize);
}
default:
throw new Exception
(
"方法:"
+ MethodBase.GetCurrentMethod().ReflectedType.FullName
+ " "
+ MethodBase.GetCurrentMethod().ToString()
+ " 发生异常:"
+ "枚举("
+ _emDataBaseHelper.GetType().FullName
+ "."
+ _emDataBaseHelper.ToString()
+ ")未知,对应的代码尚未实现。"
);
}
}
/// <summary>
///
/// </summary>
/// <param name="sqlSelectResult"></param>
/// <param name="sqlFromResult"></param>
/// <param name="sqlWhereResult"></param>
/// <param name="sqlOrderResult"></param>
/// <param name="pkName"></param>
/// <param name="pageIndex"></param>
/// <param name="iPageSize"></param>
/// <param name="iRowCount"></param>
/// <param name="_emDataBaseHelper"></param>
/// <param name="_dataBaseVersion"></param>
/// <returns></returns>
public static string StartIndexList
(
string sqlSelectResult,
string sqlFromResult,
string sqlWhereResult,
string sqlOrderResult,
string pkName,
int startIndex,
int iPageSize,
SlowX.DAL.Enums.DataBaseHelper.EmDataBaseHelper _emDataBaseHelper,
int _dataBaseVersion
)
{
if (startIndex == 0 && iPageSize == int.MaxValue)
return ToSelectSQL
(
sqlSelectResult,
sqlFromResult,
sqlWhereResult,
sqlOrderResult
);
switch (_emDataBaseHelper)
{
case Enums.DataBaseHelper.EmDataBaseHelper.Oracle:
return OracleStartIndexListSelect
(
ToSelectSQL
(
sqlSelectResult,
sqlFromResult,
sqlWhereResult,
sqlOrderResult
),
startIndex,
iPageSize
);
case Enums.DataBaseHelper.EmDataBaseHelper.SQLServer:
if (_dataBaseVersion == (int)SlowX.DAL.Enums.SqlServerVersion.EmSqlServerVersion.SqlServer2000)
{
return SqlNotInModelStartIndexListSelect
(
sqlSelectResult,
sqlFromResult,
sqlWhereResult,
sqlOrderResult,
pkName,
startIndex,
iPageSize
);
}
else
{
return SqlServerRowNumberStartIndexListSelect
(
sqlSelectResult,
sqlFromResult,
sqlWhereResult,
sqlOrderResult,
startIndex,
iPageSize
);
}
default:
throw new Exception
(
"方法:"
+ MethodBase.GetCurrentMethod().ReflectedType.FullName
+ " "
+ MethodBase.GetCurrentMethod().ToString()
+ " 发生异常:"
+ "枚举("
+ _emDataBaseHelper.GetType().FullName
+ "."
+ _emDataBaseHelper.ToString()
+ ")未知,对应的代码尚未实现。"
);
}
}
}
}