大数量查询分页显示 微软的解决办法
大数量查询分页显示 微软的解决办法
发布时间:2016-12-29 来源:查字典编辑
摘要:微软的解决办法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教程学习
热门ASP教程学习
编程开发子分类