public partial class TwoLevel : System.Web.UI.Page
{
    //由于大型系统,做以下工作(从数据库读数据,分成一条条存入数组,然后将每一条放入界面中,工作量太大,所以尽量用三层(一层读数据,二层分条存储,三层将数据放入界面),便于分工
    List<string[]> newsinfo = new List<string[]>();//集合类型
    int position;
    string[] currentnewsinfo=new string[3];
    protected void Page_Load(object sender, EventArgs e)
    {
        string sqlcommand = "SELECT * FROM newsinfor";
            DBSQL DB = new DBSQL();
           
            SqlDataReader read = DB.ExceRead(sqlcommand);            while (read.Read())
            {
                string[] temp = new string[5];
                temp[0] = read["id"].ToString();
                temp[1] = read["name"].ToString();
                temp[2] = read["sellprice"].ToString();
                temp[3] = read["price"].ToString();
                temp[4] = read["describe"].ToString();
                newsinfo.Add(temp);
            }
            currentnewsinfo = newsinfo[0];
            this.TextBox1.Text = currentnewsinfo[0];//第一列到底表示什么,只有读数据库才知道,维护很不方便,所以三层架构中会用类来代替数组
            this.TextBox2.Text = currentnewsinfo[1];//第二列到底表示什么,只有读数据库才知道,维护很不方便,所以三层架构中会用类来代替数组
            this.TextBox3.Text = currentnewsinfo[2];//第一列到底表示什么,只有读数据库才知道,维护很不方便,所以三层架构中会用类来代替数组
            this.TextBox4.Text = currentnewsinfo[3];
            this.TextBox5.Text = currentnewsinfo[4];//第二列到底表示什么,只有读数据库才知道,维护很不方便,所以三层架构中会用类来代替数组
            read.Close();
            position = 0;        //以下用代码方式填充GridView,而不是用拖控件的形式来实现,但同样达到直接用控件的效果,所以用二层比一层更具灵活性
            DataSet ds = DB.ExceDS(sqlcommand);
            this.GridView1.DataSource = ds;
            this.GridView1.DataBind();
     
            }
    protected void Button1_Click(object sender, EventArgs e)
    {
        if (position > 1)
        {
            position--;
            currentnewsinfo = newsinfo[position];
            this.TextBox1.Text = currentnewsinfo[0];
            this.TextBox2.Text = currentnewsinfo[1];
            this.TextBox3.Text = currentnewsinfo[2];//第一列到底表示什么,只有读数据库才知道,维护很不方便,所以三层架构中会用类来代替数组
            this.TextBox4.Text = currentnewsinfo[3];
            this.TextBox5.Text = currentnewsinfo[4];//第二列到底表示什么,只有读数据库才知道,维护很不方便,所以三层架构中会用类来代替数组
        }    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        if (position == 0)
        {
            position++;
            currentnewsinfo = newsinfo[position];
            this.TextBox1.Text = currentnewsinfo[0];
            this.TextBox2.Text = currentnewsinfo[1];
            this.TextBox3.Text = currentnewsinfo[2];//第一列到底表示什么,只有读数据库才知道,维护很不方便,所以三层架构中会用类来代替数组
            this.TextBox4.Text = currentnewsinfo[3];
            this.TextBox5.Text = currentnewsinfo[4];//第二列到底表示什么,只有读数据库才知道,维护很不方便,所以三层架构中会用类来代替数组
        }数据库就3条数据...只能显示1,2条按钮前一个后一个就在1,2条数据中循环