protected void Page_Load(object sender, EventArgs e)
        {
            DataTable dsTable;            if (!IsPostBack)
            {
                string sql = "select BookID,BookName from tb_BookInfo";
                dsTable = FillDt(sql);
              //  DataRow row = dsTable.NewRow();
                foreach (DataRow objRow in dsTable.Rows)
                {
                    objRow["BookID"] = dsTable.Rows[0][0].ToString();
                    objRow["BookName"] = dsTable.Rows[0][1].ToString();
                }
                GridView1.DataSource = dsTable.DefaultView;
                GridView1.DataBind();            }
        }        protected DataTable FillDt(string sql)
        {
            SqlConnection con = GetConnection();
            if (con.State == ConnectionState.Closed)
            {
                con.Open();
            }
            SqlCommand cmd = new SqlCommand(sql,con);
            SqlDataAdapter adapter = new SqlDataAdapter(cmd);
            DataTable dsTable = new DataTable();
            adapter.Fill(dsTable);
            return dsTable;        }
        protected  SqlConnection GetConnection()
        {
            string myStr = ConfigurationManager.AppSettings["ConnectionString"].ToString();
            SqlConnection con = new SqlConnection(myStr);
            return con;
        }数据库有四条不同的记录,然后结果的页面是四行相同的记录。哪里错了?foreach那里不是遍历dsTable的每一行,然后将相应的数据导入到新建的每一行里么

解决方案 »

  1.   

    把             foreach (DataRow objRow in dsTable.Rows)
                    {
                        objRow["BookID"] = dsTable.Rows[0][0].ToString();
                        objRow["BookName"] = dsTable.Rows[0][1].ToString();
                    }
    注释掉
      

  2.   

      foreach (DataRow objRow in dsTable.Rows)
                    {
                        objRow["BookID"] = dsTable.Rows[0][0].ToString();
                        objRow["BookName"] = dsTable.Rows[0][1].ToString();
                    }
    就是插入了dsTable.Rows。Count条相同记录!
      

  3.   

    foreach 循环不能更改循环的内容,你用for()循环试试看
      

  4.   

     foreach (DataRow objRow in dsTable.Rows)
      {DataRow  row = dsTable.NewRow();
      row ["BookID"] = dsTable.Rows[0][0].ToString();
      row ["BookName"] = dsTable.Rows[0][1].ToString();dsTable.Rows.Add(row);
      }