Asp.Net 通用數(shù)據(jù)操作類 (附通用數(shù)據(jù)基類)第2/2頁(yè)
更新時(shí)間:2008年07月13日 21:52:53 作者:
以前經(jīng)常用php的數(shù)據(jù)操作類,這次的asp.net數(shù)據(jù)操作類,是個(gè)方法
/// <summary>
/// 執(zhí)行存儲(chǔ)過(guò)程(返回記錄集)
/// </summary>
/// <param name="procName">過(guò)程名</param>
/// <param name="hashtable">傳入的參數(shù)表</param>
/// <returns>返回記錄集</returns>
public DataSet ExecProcedure(string procName, System.Collections.Hashtable hashtable)
{
System.Data.DataSet ds = new DataSet();
com.CommandText = procName;
com.CommandType = CommandType.StoredProcedure;
System.Collections.IDictionaryEnumerator ide = hashtable.GetEnumerator();
while (ide.MoveNext())
{
System.Data.SqlClient.SqlParameter p = new System.Data.SqlClient.SqlParameter(ide.Key.ToString(), ide.Value);
com.Parameters.Add(p);
}
try
{
System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(com);
da.Fill(ds);
da.Dispose();
}
catch (Exception ee)
{
throw new Exception(ee.Message.ToString());
}
finally
{
com.Cancel();
}
return ds;
}
#endregion
#region 數(shù)據(jù)操作
/// <summary>
/// 統(tǒng)計(jì)某表記錄總數(shù)
/// </summary>
/// <param name="KeyField">主鍵/索引鍵</param>
/// <param name="TableName">數(shù)據(jù)庫(kù).用戶名.表名</param>
/// <param name="Condition">查詢條件</param>
/// <returns>返回記錄總數(shù)</returns>
public int GetRecordCount(string keyField, string tableName, string condition)
{
int RecordCount = 0;
string sql = "select count(" + keyField + ") as count from " + tableName + " " + condition;
System.Data.DataSet ds = GetDataSet(sql);
if (ds.Tables[0].Rows.Count > 0)
{
RecordCount =Convert.ToInt32(ds.Tables[0].Rows[0][0]);
}
ds.Clear();
ds.Dispose();
return RecordCount;
}
/// <summary>
/// 統(tǒng)計(jì)某表記錄總數(shù)
/// </summary>
/// <param name="Field">可重復(fù)的字段</param>
/// <param name="tableName">數(shù)據(jù)庫(kù).用戶名.表名</param>
/// <param name="condition">查詢條件</param>
/// <param name="flag">字段是否主鍵</param>
/// <returns>返回記錄總數(shù)</returns>
public int GetRecordCount(string Field, string tableName, string condition, bool flag)
{
int RecordCount = 0;
if (flag)
{
RecordCount = GetRecordCount(Field, tableName, condition);
}
else
{
string sql = "select count(distinct(" + Field + ")) as count from " + tableName + " " + condition;
System.Data.DataSet ds = GetDataSet(sql);
if (ds.Tables[0].Rows.Count > 0)
{
RecordCount = Convert.ToInt32(ds.Tables[0].Rows[0][0]);
}
ds.Clear();
ds.Dispose();
}
return RecordCount;
}
/// <summary>
/// 統(tǒng)計(jì)某表分頁(yè)總數(shù)
/// </summary>
/// <param name="keyField">主鍵/索引鍵</param>
/// <param name="tableName">表名</param>
/// <param name="condition">查詢條件</param>
/// <param name="pageSize">頁(yè)寬</param>
/// <param name="RecordCount">記錄總數(shù)</param>
/// <returns>返回分頁(yè)總數(shù)</returns>
public int GetPageCount(string keyField, string tableName, string condition, int pageSize, int RecordCount)
{
int PageCount = 0;
PageCount = (RecordCount % pageSize) > 0 ? (RecordCount / pageSize) + 1 : RecordCount / pageSize;
if (PageCount < 1) PageCount = 1;
return PageCount;
}
/// <summary>
/// 統(tǒng)計(jì)某表分頁(yè)總數(shù)
/// </summary>
/// <param name="keyField">主鍵/索引鍵</param>
/// <param name="tableName">表名</param>
/// <param name="condition">查詢條件</param>
/// <param name="pageSize">頁(yè)寬</param>
/// <returns>返回頁(yè)面總數(shù)</returns>
public int GetPageCount(string keyField, string tableName, string condition, int pageSize, ref int RecordCount)
{
RecordCount = GetRecordCount(keyField, tableName, condition);
return GetPageCount(keyField, tableName, condition, pageSize, RecordCount);
}
/// <summary>
/// 統(tǒng)計(jì)某表分頁(yè)總數(shù)
/// </summary>
/// <param name="Field">可重復(fù)的字段</param>
/// <param name="tableName">表名</param>
/// <param name="condition">查詢條件</param>
/// <param name="pageSize">頁(yè)寬</param>
/// <param name="flag">是否主鍵</param>
/// <returns>返回頁(yè)頁(yè)總數(shù)</returns>
public int GetPageCount(string Field, string tableName, string condition, ref int RecordCount, int pageSize, bool flag)
{
RecordCount = GetRecordCount(Field, tableName, condition, flag);
return GetPageCount(Field, tableName, condition, pageSize, ref RecordCount);
}
#endregion
#region 分頁(yè)函數(shù)
/// <summary>
/// 構(gòu)造分頁(yè)查詢SQL語(yǔ)句
/// </summary>
/// <param name="KeyField">主鍵</param>
/// <param name="FieldStr">所有需要查詢的字段(field1,field2...)</param>
/// <param name="TableName">庫(kù)名.擁有者.表名</param>
/// <param name="Condition">查詢條件1(where ...)</param>
/// <param name="Condition2">查詢條件2(order by ...)</param>
/// <param name="CurrentPage">當(dāng)前頁(yè)號(hào)</param>
/// <param name="PageSize">頁(yè)寬</param>
/// <returns>SQL語(yǔ)句</returns>
public static string JoinPageSQL(string KeyField, string FieldStr, string TableName, string Condition, string Condition2, int CurrentPage, int PageSize)
{
string sql = null;
if (CurrentPage == 1)
{
sql = "select top " + CurrentPage * PageSize + " " + FieldStr + " from " + TableName + " " + Condition + " " + Condition2 + " ";
}
else
{
sql = "select * from (";
sql += "select top " + CurrentPage * PageSize + " " + FieldStr + " from " + TableName + " " + Condition + " " + Condition2 + ") a ";
sql += "where " + KeyField + " not in (";
sql += "select top " + (CurrentPage - 1) * PageSize + " " + KeyField + " from " + TableName + " " + Condition + " " + Condition2 + ")";
}
return sql;
}
/// <summary>
/// 構(gòu)造分頁(yè)查詢SQL語(yǔ)句
/// </summary>
/// <param name="Field">字段名(非主鍵)</param>
/// <param name="TableName">庫(kù)名.擁有者.表名</param>
/// <param name="Condition">查詢條件1(where ...)</param>
/// <param name="Condition2">查詢條件2(order by ...)</param>
/// <param name="CurrentPage">當(dāng)前頁(yè)號(hào)</param>
/// <param name="PageSize">頁(yè)寬</param>
/// <returns>SQL語(yǔ)句</returns>
public static string JoinPageSQL(string Field, string TableName, string Condition, string Condition2, int CurrentPage, int PageSize)
{
string sql = null;
if (CurrentPage == 1)
{
sql = "select top " + CurrentPage * PageSize + " " + Field + " from " + TableName + " " + Condition + " " + Condition2 + " group by " + Field;
}
else
{
sql = "select * from (";
sql += "select top " + CurrentPage * PageSize + " " + Field + " from " + TableName + " " + Condition + " " + Condition2 + " group by " + Field + " ) a ";
sql += "where " + Field + " not in (";
sql += "select top " + (CurrentPage - 1) * PageSize + " " + Field + " from " + TableName + " " + Condition + " " + Condition2 + " group by " + Field + ")";
}
return sql;
}
/// <summary>
/// 頁(yè)面分頁(yè)顯示功能
/// </summary>
/// <param name="Parameters">參數(shù)串(a=1&b=2...)</param>
/// <param name="RecordCount">記錄總數(shù)</param>
/// <param name="PageSize">頁(yè)寬</param>
/// <param name="CurrentPage">當(dāng)前頁(yè)號(hào)</param>
/// <param name="ShowJump">是否顯示跳轉(zhuǎn)輸入框及按鈕</param>
/// <param name="Style">樣式(1:上頁(yè)下頁(yè)...,2:1234...)</param>
/// <returns></returns>
public static string Paging(string Parameters, int RecordCount, int PageCount, int PageSize, int CurrentPage, bool ShowJump, int Style)
{
string str;
if (RecordCount <= PageSize) return "";
if (Parameters != "") Parameters += "&";
if (CurrentPage < 1) CurrentPage = 1;
if (CurrentPage > PageCount) CurrentPage = PageCount;
str = "<table align='center' width=\"100%\"><tr><td align=\"center\">";
str += "共 " + RecordCount + " 條記錄 頁(yè)次:" + CurrentPage + "/" + PageCount + "頁(yè) ";
str += PageSize + "條/頁(yè) ";
if (Style == 1)
{
if (CurrentPage == 1)
str += "<font color=\"#999999\">首頁(yè) 上頁(yè)</font> ";
else
{
str += "<a href='?" + Parameters + "page=1' class=\"link\">首頁(yè)</a> ";
str += "<a href='?" + Parameters + "page=" + (CurrentPage - 1) + "' class=\"link\">上頁(yè)</a> "; ;
}
if (CurrentPage == PageCount )
{
str += "<font color=\"#999999\">下頁(yè) 尾頁(yè)</font> ";
}
else
{
str += "<a href='?" + Parameters + "page=" + (CurrentPage + 1) + "' class=\"link\">下頁(yè)</a> ";
str += "<a href='?" + Parameters + "page=" + PageCount + "' class=\"link\">尾頁(yè)</a> ";
}
}
else if (Style == 2)
{
int NumberSize = 10;
int PageNumber = (CurrentPage - 1) / NumberSize;
if (PageNumber * NumberSize > 0)
str += "<a href='?" + Parameters + "page=" + PageNumber * NumberSize + "' title=上十頁(yè) >[<<]</a> ";
int i;
for (i = PageNumber * NumberSize + 1; i <= (PageNumber + 1) * NumberSize; i++)
{
if (i == CurrentPage)
str += "<strong><font color=#ff0000>[" + i + "]</font></strong> ";
else
str += "<a href='?" + Parameters + "page=" + i + "'>[" + i + "]</a> ";
if (i == PageCount) break;
}
if (i < RecordCount) str += "<a href='?" + Parameters + "page=" + i + "' title=下十頁(yè)>[>>]</a> ";
}
if (ShowJump)
{
str += "";
}
str += "</td></tr></table>";
return str;
}
#endregion
}
}
您可能感興趣的文章:
- ASP.NET:把a(bǔ)shx寫到類庫(kù)里并在頁(yè)面上調(diào)用的具體方法
- 遞歸輸出ASP.NET頁(yè)面所有控件的類型和ID的代碼
- asp.net 簡(jiǎn)單實(shí)現(xiàn)禁用或啟用頁(yè)面中的某一類型的控件
- asp.net 數(shù)據(jù)訪問(wèn)層基類
- Asp.net 字符串操作基類(安全,替換,分解等)
- Asp.net 彈出對(duì)話框基類(輸出alet警告框)
- Asp.net 時(shí)間操作基類(支持短日期,長(zhǎng)日期,時(shí)間差)
- Asp.Net+XML操作基類(修改,刪除,新增,創(chuàng)建)
- Asp.Net 文件操作基類(讀取,刪除,批量拷貝,刪除,寫入,獲取文件夾大小,文件屬性,遍歷目錄)
- asp.net實(shí)現(xiàn)非常實(shí)用的自定義頁(yè)面基類(附源碼)
相關(guān)文章
.NET使用CsvHelper快速讀取和寫入CSV文件的操作方法
在日常開發(fā)中使用CSV文件進(jìn)行數(shù)據(jù)導(dǎo)入和導(dǎo)出、數(shù)據(jù)交換是非常常見的需求,今天我們來(lái)講講在.NET中如何使用CsvHelper這個(gè)開源庫(kù)快速實(shí)現(xiàn)CSV文件讀取和寫入,需要的朋友可以參考下2024-06-06
.NET?設(shè)計(jì)模式之模板方法模式(Template?Method?Pattern)詳解
模板方法模式(Template?Method?Pattern),又叫模板模式(Template?Pattern),是一種行為設(shè)計(jì)模式,它定義了一個(gè)操作中的算法框架,將某些步驟的具體實(shí)現(xiàn)留給子類,這篇文章主要介紹了.NET?設(shè)計(jì)模式—模板方法模式(Template?Method?Pattern),需要的朋友可以參考下2024-04-04
asp.net下UTF-7轉(zhuǎn)GB2312編碼的代碼(中文)
UTF-7轉(zhuǎn)換GB2312編碼的方法2010-07-07
ASP.NET技巧:做個(gè)DataList可分頁(yè)的數(shù)據(jù)源
ASP.NET技巧:做個(gè)DataList可分頁(yè)的數(shù)據(jù)源...2006-09-09
通過(guò).net core調(diào)用so文件的方法
工作中需要在linux上監(jiān)控系統(tǒng)空閑時(shí)間,但是沒(méi)有找到C#代碼,只找到C的代碼,所以準(zhǔn)備將C文件編譯為so然后用P/invoke調(diào)用,這篇文章主要介紹了如何通過(guò).net core調(diào)用so文件,需要的朋友可以參考下2023-08-08
ASP.NET技巧:教你制做Web實(shí)時(shí)進(jìn)度條
ASP.NET技巧:教你制做Web實(shí)時(shí)進(jìn)度條...2006-09-09
asp.net mvc 動(dòng)態(tài)編譯生成Controller的方法
本篇文章主要介紹了asp.net mvc 動(dòng)態(tài)編譯生成Controller的方法,具有一定的參考價(jià)值,有興趣的可以了解一下2017-08-08

