从数据库中读取多条数据,在页面上一条一条显示出来。如:一个月30天,每天有一条记录,在执行查询的时候,将数据一条一条显示在页面上。就如同表格,一行一行增加。   
怎么来实现呢?最好能够详细点。Ths!

解决方案 »

  1.   

    一、第一种
    1、用DataTable获取全部数据
    2、在用timer控制时间间隔需要多长时间显示一条,知道显示完了,才把它false掉
    3、在timer事件里 DataGridView 从那DataTable读一行添加一行,当中有时间间隔做停顿。
    二、第二种
    也是用timer只不过里面是控制从数据库读取数据,第一次间隔读取一条可以用参数控制读取条数
    数据库查询条数用Top应该知道吧。 DataTable MyDataTable = new DataTable("表明"); //具体获取全部记录就不写了
     int IntNumber = 0;//控制记录显示
     private void timer1_Tick(object sender, EventArgs e)
     {
         //先获取全部记录才可判断  
         if (i <= MyDataTable.Rows.Count)
         {                
             //控制记录显示
             IntNumber += 1;
             //绑定
             this.dataGridView1.DataSource = this.GetList(IntNumber);
         }
         else
         {
             timer1.Enabled = false;
         }
     } public DataTable GetList(int number)
     {
         //SQL字符串
         String sqlQuery = " SELECT top " + number + " * FROM 表名 WHERE 条件 ";
         DataTable myDataTable = new DataTable(表名);
         SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter(sqlQuery,"数据库连接")
         mySqlDataAdapter.Fill(myDataTable);
         //返回
         return myDataTable;
     } 
      

  2.   


    [align=center]
     //改一下
      this.dataGridView1.DataSource = this.GetList(IntNumber).DefaultView; 
    [/align] 
      

  3.   

    帮你些好了,我模拟你的需求写了一个假数据出来。你的只需要tick里边的代码就可以完成,你自己改一下吧。我这里time用的是1秒改变一次。    protected void Page_Load(object sender, EventArgs e)
        {
                DataTable myTable = new DataTable();
                myTable.Namespace = "table";
                myTable.Columns.Add().ColumnName = "ID";
                myTable.Columns.Add().ColumnName = "Name";
                myTable.Columns["ID"].Caption = "ID";
                myTable.Columns["Name"].Caption = "Name";            for (int i = 0; i < 10; i++)
                {
                    DataRow dr = myTable.NewRow();                dr["ID"] = i.ToString();
                    dr["Name"] = "张" + i.ToString();                myTable.Rows.Add(dr);
                }            this.GridView1.DataSource = myTable;
                this.GridView1.DataBind();            ViewState["table"] = myTable;
        }    protected void Timer1_Tick(object sender, EventArgs e)
        {
            this.lblTime.Text = (int.Parse(this.lblTime.Text) + 1).ToString();
            DataTable myTable = new DataTable();
            myTable = (DataTable)ViewState["table"];        for (int i = myTable.Rows.Count - 1; i >= int.Parse(this.lblTime.Text); i--)
            {
                myTable.Rows.RemoveAt(i);
            }        this.GridView1.DataSource = myTable;
            this.GridView1.DataBind();
        }