• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    大数量查询分页显示 微软的解决办法
    POST TIME:2021-10-18 07:03
    微软的解决办法
    using System; 
    using System.Data; 
    using System.Data.SqlClient; 
    using System.Drawing; 
    using System.Windows.Forms; 

    public class PagingSample: Form 

    // Form controls. 
    Button prevBtn = new Button(); 
    Button nextBtn = new Button(); 

    static DataGrid myGrid = new DataGrid(); 
    static Label pageLbl = new Label(); 

    // Paging variables. 
    static int pageSize = 10; // Size of viewed page. 
    static int totalPages = 0; // Total pages. 
    static int currentPage = 0; // Current page. 
    static string firstVisibleCustomer = ""; // First customer on page to determine location for move previous. 
    static string lastVisibleCustomer = ""; // Last customer on page to determine location for move next. 

    // DataSet to bind to DataGrid. 
    static DataTable custTable; 

    // Initialize connection to database and DataAdapter. 
    static SqlConnection nwindConn = new SqlConnection("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind"); 
    static SqlDataAdapter custDA = new SqlDataAdapter("", nwindConn); 
    static SqlCommand selCmd = custDA.SelectCommand; 

    public static void GetData(string direction) 

    // Create SQL statement to return a page of records. 
    selCmd.Parameters.Clear(); 

    switch (direction) 

    case "Next": 
    selCmd.CommandText = "SELECT TOP " + pageSize + " CustomerID, CompanyName FROM Customers " + 
    "WHERE CustomerID > @CustomerId ORDER BY CustomerID"; 
    selCmd.Parameters.Add("@CustomerId", SqlDbType.VarChar, 5).Value = lastVisibleCustomer; 
    break; 
    case "Previous": 
    selCmd.CommandText = "SELECT TOP " + pageSize + " CustomerID, CompanyName FROM Customers " + 
    "WHERE CustomerID  @CustomerId ORDER BY CustomerID DESC"; 
    selCmd.Parameters.Add("@CustomerId", SqlDbType.VarChar, 5).Value = firstVisibleCustomer; 
    break; 
    default: 
    selCmd.CommandText = "SELECT TOP " + pageSize + " CustomerID, CompanyName FROM Customers ORDER BY CustomerID"; 

    // Determine total pages. 
    SqlCommand totCMD = new SqlCommand("SELECT Count(*) FROM Customers", nwindConn); 
    nwindConn.Open(); 
    int totalRecords = (int)totCMD.ExecuteScalar(); 
    nwindConn.Close(); 
    totalPages = (int)Math.Ceiling((double)totalRecords / pageSize); 

    break; 


    // Fill a temporary table with query results. 
    DataTable tmpTable = new DataTable("Customers"); 
    int recordsAffected = custDA.Fill(tmpTable); 

    // If table does not exist, create it. 
    if (custTable == null) 
    custTable = tmpTable.Clone(); 

    // Refresh table if at least one record returned. 
    if (recordsAffected > 0) 

    switch (direction) 

    case "Next": 
    currentPage++; 
    break; 
    case "Previous": 
    currentPage--; 
    break; 
    default: 
    currentPage = 1; 
    break; 


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

    // Clear rows and add new results. 
    custTable.Rows.Clear(); 

    foreach (DataRow myRow in tmpTable.Rows) 
    custTable.ImportRow(myRow); 

    // Preserve first and last primary key values. 
    DataRow[] ordRows = custTable.Select("", "CustomerID ASC"); 
    firstVisibleCustomer = ordRows[0][0].ToString(); 
    lastVisibleCustomer = ordRows[custTable.Rows.Count - 1][0].ToString(); 





    public PagingSample() 

    // Initialize controls and add to form. 
    this.ClientSize = new Size(360, 274); 
    this.Text = "NorthWind Data"; 

    myGrid.Location = new Point(10,10); 
    myGrid.Size = new Size(340, 220); 
    myGrid.AllowSorting = true; 
    myGrid.CaptionText = "NorthWind Customers"; 
    myGrid.ReadOnly = true; 
    myGrid.AllowNavigation = false; 
    myGrid.PreferredColumnWidth = 150; 

    prevBtn.Text = ""; 
    prevBtn.Size = new Size(48, 24); 
    prevBtn.Location = new Point(92, 240); 
    prevBtn.Click += new EventHandler(Prev_OnClick); 

    nextBtn.Text = ">>"; 
    nextBtn.Size = new Size(48, 24); 
    nextBtn.Location = new Point(160, 240); 

    pageLbl.Text = "No Records Returned."; 
    pageLbl.Size = new Size(130, 16); 
    pageLbl.Location = new Point(218, 244); 

    this.Controls.Add(myGrid); 
    this.Controls.Add(prevBtn); 
    this.Controls.Add(nextBtn); 
    this.Controls.Add(pageLbl); 
    nextBtn.Click += new EventHandler(Next_OnClick); 


    // Populate DataSet with first page of records and bind to grid. 
    GetData("Default"); 
    DataView custDV = new DataView(custTable, "", "CustomerID", DataViewRowState.CurrentRows); 
    myGrid.SetDataBinding(custDV, ""); 




    public static void Prev_OnClick(object sender, EventArgs args) 

    GetData("Previous"); 


    public static void Next_OnClick(object sender, EventArgs args) 

    GetData("Next"); 





    public class Sample 

    static void Main() 

    Application.Run(new PagingSample()); 

    上一篇:在ASP处理程序时显示进度
    下一篇:javascript asp教程第三课 new String() 构造器
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信