本文實例講述了C#基于數據庫存儲過程的AJAX分頁實現方法。分享給大家供大家參考。具體如下:
首先我們在數據庫(SQL Server)中聲明定義存儲過程
因為是直接訪問數據庫的,所以我們將下面這條方法寫入到DAL層中,這里我將它寫入到SqlHelper中
DataTable dt = new DataTable();
using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
{
adapter.Fill(dt);//到數據庫去執行存儲過程,并將結果填充到dt表中
}
//等存儲過程執行完畢后,存儲過程會把這兩個輸出參數傳遞出來。那么我們在這里來取得這兩個返回參數。
rowCount = Convert.ToInt32(parameters[2].Value);
pageCount = Convert.ToInt32(parameters[3].Value);
return dt;
}
}
}
}
}
在DAL文件夾中( 層中) 創建一個Aticel.cs類 產生一個list
namespace WebApplication1.DAL
{
public class Aticel
{
public static List<Location> GetPageListByPageIndex(int pageSize,int currentpage,out int rowCount,out int pageCount)
{
DataTable dt= SqlHelper.ExecuteProcPageList(pageSize, currentpage,out rowCount,out pageCount);
var list = new List<Location>();// 聲明一個泛型對象list
if (dt != null && dt.Rows.Count > 0)
{
//將DataTable轉換成一個list
list = (from p in dt.AsEnumerable() //(遍歷DataTable)
select new Model.Location
{
Locid = p.Field<int>("locid"), //將DateTable里的字段賦值給Location類中的屬性
LocName = p.Field<string>("locName"),
ParentId = p.Field<int>("parentId"),
LocType = p.Field<short>("locType"),
ElongCode = p.Field<string>("elongCode"),
CityCode = p.Field<string>("CityCode"),
BaiduPos = p.Field<string>("BaiduPos"),
Versions = p.Field<short>("Version")
}).ToList();
}
return list; //將這個list返回回去
}
}
}
在API這個文件夾中創建一個GetPageData.ashx 頁 (BLL層) 在這里調用ADL層里的 Aticel.cs類中的GetPageListByPageIndex()方法,獲取一個list 并將這個list轉換成一個Json格式字符串, 共AJAX 異步請求得到。
前端頁面 (將AJAX請求得到的數據展示也頁面)
希望本文所述對大家的C#程序設計有所幫助。
新聞熱點
疑難解答