当前位置:编程学习 > C#/ASP.NET >>

跪求各位大神看看这里的代码有什么错误..数据库读入时不能显示第三条数据

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["markprice"].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条数据中循环 --------------------编程问答-------------------- position 初始为0,你读取时,先读取,在设置 position 的新值,否则 第一次 position 就 +1,了,直接蹦到第二条记录了 --------------------编程问答-------------------- 但是我把初始设为1的话就直接蹦到了第三条记录了...
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,