手机
当前位置:查字典教程网 >编程开发 >ASP教程 >大数量查询分页显示 微软的解决办法
大数量查询分页显示 微软的解决办法
摘要:微软的解决办法usingSystem;usingSystem.Data;usingSystem.Data.SqlClient;usingSy...

微软的解决办法

usingSystem;

usingSystem.Data;

usingSystem.Data.SqlClient;

usingSystem.Drawing;

usingSystem.Windows.Forms;

publicclassPagingSample:Form

{

//Formcontrols.

ButtonprevBtn=newButton();

ButtonnextBtn=newButton();

staticDataGridmyGrid=newDataGrid();

staticLabelpageLbl=newLabel();

//Pagingvariables.

staticintpageSize=10;//Sizeofviewedpage.

staticinttotalPages=0;//Totalpages.

staticintcurrentPage=0;//Currentpage.

staticstringfirstVisibleCustomer="";//Firstcustomeronpagetodeterminelocationformoveprevious.

staticstringlastVisibleCustomer="";//Lastcustomeronpagetodeterminelocationformovenext.

//DataSettobindtoDataGrid.

staticDataTablecustTable;

//InitializeconnectiontodatabaseandDataAdapter.

staticSqlConnectionnwindConn=newSqlConnection("DataSource=localhost;IntegratedSecurity=SSPI;InitialCatalog=northwind");

staticSqlDataAdaptercustDA=newSqlDataAdapter("",nwindConn);

staticSqlCommandselCmd=custDA.SelectCommand;

publicstaticvoidGetData(stringdirection)

{

//CreateSQLstatementtoreturnapageofrecords.

selCmd.Parameters.Clear();

switch(direction)

{

case"Next":

selCmd.CommandText="SELECTTOP"+pageSize+"CustomerID,CompanyNameFROMCustomers"+

"WHERECustomerID>@CustomerIdORDERBYCustomerID";

selCmd.Parameters.Add("@CustomerId",SqlDbType.VarChar,5).Value=lastVisibleCustomer;

break;

case"Previous":

selCmd.CommandText="SELECTTOP"+pageSize+"CustomerID,CompanyNameFROMCustomers"+

"WHERECustomerID<@CustomerIdORDERBYCustomerIDDESC";

selCmd.Parameters.Add("@CustomerId",SqlDbType.VarChar,5).Value=firstVisibleCustomer;

break;

default:

selCmd.CommandText="SELECTTOP"+pageSize+"CustomerID,CompanyNameFROMCustomersORDERBYCustomerID";

//Determinetotalpages.

SqlCommandtotCMD=newSqlCommand("SELECTCount(*)FROMCustomers",nwindConn);

nwindConn.Open();

inttotalRecords=(int)totCMD.ExecuteScalar();

nwindConn.Close();

totalPages=(int)Math.Ceiling((double)totalRecords/pageSize);

break;

}

//Fillatemporarytablewithqueryresults.

DataTabletmpTable=newDataTable("Customers");

intrecordsAffected=custDA.Fill(tmpTable);

//Iftabledoesnotexist,createit.

if(custTable==null)

custTable=tmpTable.Clone();

//Refreshtableifatleastonerecordreturned.

if(recordsAffected>0)

{

switch(direction)

{

case"Next":

currentPage++;

break;

case"Previous":

currentPage--;

break;

default:

currentPage=1;

break;

}

pageLbl.Text="Page"+currentPage+"of"+totalPages;

//Clearrowsandaddnewresults.

custTable.Rows.Clear();

foreach(DataRowmyRowintmpTable.Rows)

custTable.ImportRow(myRow);

//Preservefirstandlastprimarykeyvalues.

DataRow[]ordRows=custTable.Select("","CustomerIDASC");

firstVisibleCustomer=ordRows[0][0].ToString();

lastVisibleCustomer=ordRows[custTable.Rows.Count-1][0].ToString();

}

}

publicPagingSample()

{

//Initializecontrolsandaddtoform.

this.ClientSize=newSize(360,274);

this.Text="NorthWindData";

myGrid.Location=newPoint(10,10);

myGrid.Size=newSize(340,220);

myGrid.AllowSorting=true;

myGrid.CaptionText="NorthWindCustomers";

myGrid.ReadOnly=true;

myGrid.AllowNavigation=false;

myGrid.PreferredColumnWidth=150;

prevBtn.Text="<<";

prevBtn.Size=newSize(48,24);

prevBtn.Location=newPoint(92,240);

prevBtn.Click+=newEventHandler(Prev_OnClick);

nextBtn.Text=">>";

nextBtn.Size=newSize(48,24);

nextBtn.Location=newPoint(160,240);

pageLbl.Text="NoRecordsReturned.";

pageLbl.Size=newSize(130,16);

pageLbl.Location=newPoint(218,244);

this.Controls.Add(myGrid);

this.Controls.Add(prevBtn);

this.Controls.Add(nextBtn);

this.Controls.Add(pageLbl);

nextBtn.Click+=newEventHandler(Next_OnClick);

//PopulateDataSetwithfirstpageofrecordsandbindtogrid.

GetData("Default");

DataViewcustDV=newDataView(custTable,"","CustomerID",DataViewRowState.CurrentRows);

myGrid.SetDataBinding(custDV,"");

}

publicstaticvoidPrev_OnClick(objectsender,EventArgsargs)

{

GetData("Previous");

}

publicstaticvoidNext_OnClick(objectsender,EventArgsargs)

{

GetData("Next");

}

}

publicclassSample

{

staticvoidMain()

{

Application.Run(newPagingSample());

}

}

【大数量查询分页显示 微软的解决办法】相关文章:

个性验证码的制作方法

编写网页木马详解

另类的文件上传解决方案

ASP代码实现access随机显示不重复记录

ASP抽取数据的执行效率

防止别人盗链的好方法推荐

简单分页函数一 常用

ASP验证码不显示或始终不正确解决方法

一种理论上最快的Web数据库分页方法

域名查询系统用到的类

精品推荐
分类导航