本文整理汇总了C#中IDataAccess.CreateCommand方法的典型用法代码示例。如果您正苦于以下问题:C# IDataAccess.CreateCommand方法的具体用法?C# IDataAccess.CreateCommand怎么用?C# IDataAccess.CreateCommand使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IDataAccess
的用法示例。
在下文中一共展示了IDataAccess.CreateCommand方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateDataSetPage
/// <summary>
/// 按照分页查询数据
/// </summary>
/// <param name="dataAccess">数据访问器</param>
/// <param name="whereString">查询条件</param>
/// <param name="orderString">排序或分组条件</param>
/// <param name="pageStart">查询页编号</param>
/// <param name="pageSize">每页数据量</param>
/// <returns></returns>
public IDbCommand CreateDataSetPage(IDataAccess dataAccess, string whereString, string orderString, int pageStart, int pageSize)
{
string strOrderby = string.Empty;
string strWhere = string.Empty;
int index = -1;
if (!string.IsNullOrEmpty(orderString))
{
index = orderString.ToUpper().IndexOf("ORDER BY");
strOrderby = "ORDER BY " + (index == -1 ? orderString.Trim() : orderString.Substring(index + 9).Trim());
}
if (!string.IsNullOrEmpty(whereString))
{
index = whereString.ToUpper().IndexOf("WHERE");
strWhere = "WHERE " + (index == -1 ? whereString.Trim() : whereString.Substring(index + 6).Trim());
}
IDbCommand dbCommand = dataAccess.CreateCommand();
dbCommand.CommandType = CommandType.Text;
string sqlText = null;
long rowStart = pageStart < 1 ? 1 : (pageStart - 1) * pageSize + 1;
long rowEnd = rowStart + pageSize;
switch (dataAccess.DataBaseType)
{
case DataBaseType.Sql:
if (rowStart <= 1L)
{
//sqlText = string.Format("SELECT TOP {0} {1} FROM {2} WITH(NOLOCK){3} ORDER BY {4}",
sqlText = string.Format("SELECT TOP {0} {1} FROM {2} {3} {4}",
new object[] { rowEnd, "*", this.TableName, strWhere, strOrderby });
}
else
{
sqlText = string.Format("WITH temptable AS (SELECT ROW_NUMBER() OVER({0}) AS 'RowNo',{1} FROM {2} {3}) SELECT * FROM temptable WHERE RowNo BETWEEN {4} AND {5}",
new object[] { strOrderby, "*", this.TableName, strWhere, rowStart, rowEnd });
}
break;
case DataBaseType.Oracle:
case DataBaseType.Odac:
strWhere = "AND" + strWhere.Substring(5);
sqlText = string.Format("SELECT * FROM (SELECT a.*, ROWNUM rn FROM (SELECT * FROM {0} {1}) a WHERE ROWNUM <= {2} {3}) WHERE rn >= {4}",
new object[] { this.TableName, strOrderby, rowEnd, strWhere, rowStart });
break;
case DataBaseType.OleDb:
throw new Exception("没有设定");
}
dbCommand.CommandText = sqlText;
return dbCommand;
}