在Gridview中自己定义了columns的列名
                            <asp:BoundField HeaderText="事项" DataField="事项" />
                            <asp:BoundField HeaderText="金额" DataField="金额" />
                            <asp:BoundField HeaderText="日期" DataField="日期" />
                            <asp:BoundField DataField="备注" HeaderText="备注" />
可是读取数据的时候却重复读了,是什么原因?
在后台我是自己调用sql语句进行查询的,
sql = " select use_name as 事项, use_num as 金额,to_char(use_date,'yyyy-mm-dd')  as 日期,res as 备注 from pocket_inf";Gridview1.DataSource = dt;//dt为读出来的datatable;
            
           Gridview.DataBind();
和这个有关系吗?
该如何改呢???
急 ,在线等。

解决方案 »

  1.   

    把你绑datatable的代码贴下
    保证你数据库中的数据不是重复的
      

  2.   

    Gridview不需要再自己定义列名了吧
      

  3.   


            OracleConnection conn = new OracleConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
            DataTable dt = new DataTable();
    sql = " select use_name as 事项, use_num as 金额,to_char(use_date,'yyyy-mm-dd')  as 日期,res as 备注 from pocket_inf";
      OracleDataAdapter oda = new OracleDataAdapter(sql, conn);
        oda.Fill(dt);
     if (dt.Rows.Count > 0)
            {
               // dg_approval.DataKeyNames= "id";
                //dg_approval.DataKeyField = "id";
                dg_approval.DataSource = dt;
                
                dg_approval.DataBind();
    }不知道这样贴算不算一个完整的读数过程,如果单独这样的话
                        <asp:GridView ID="GridView"  DataKeyNames ="事项" runat="server">
                        
                        </asp:GridView>就可以直接读一遍了
      

  4.   

    那你先看看
     select use_name as 事项, use_num as 金额,to_char(use_date,'yyyy-mm-dd') as 日期,res as 备注 from pocket_inf
    有没有重复值
      

  5.   

    autogeneratecolumns=false
    if(!ispostback)binddata();
      

  6.   

    Page_Load里面 进行下IsPostBack事件试下。
      

  7.   

    这个如梦我怎么老见你啊,呵呵。顶一下
    说的真对,你的代码该不会写在了if(!IsPostBack)外面吧
      

  8.   

    在page_load()方法中 绑定GridView的代码
    有没有放在 if(!IsPostBack){...}
      

  9.   

    多谢大家啦 哈哈以前用Datagrid没有接触过那个属性,呵呵,谢谢大家,谢谢如梦,得到结果立马结贴 呵呵
      

  10.   

    Gridview一般会默认生成查询列,所以要让自动生成列autogeneratecolumns为FALSE