日期:2014-05-20  浏览次数:20600 次

datalist 数据源绑定问题.
我用adapter+DataSet填充数据源绑定datalist,进行添加删除修改后绑定datalist,但是操作进行后需要刷新或者再执行一次操作才能看到上一次的操作效果,而用DataReader直接就可以看到执行效果,不知道是为什么.代码如下:
adapter+dataSet绑定:
                ICollection   CreateSource()
                {
                        int   StartIndex;
                        //设定倒入的起终地址
                        StartIndex   =   CurrentPage   *   PageSize;
                        string   strSel   =   "select   *   from   Message   order   by   id   desc ";
                        DataSet   ds   =   new   DataSet();
                        OleDbDataAdapter   da   =   new   OleDbDataAdapter(strSel,con);
                        da.Fill(ds,   StartIndex,   PageSize,   "Message ");
                        return   ds.Tables[0].DefaultView;

                }
public   void   ListBind()
                {
                        this.DataList1.DataSource   =   CreateSource();
                        this.DataList1.DataBind();

}
dataReader绑定:
                                        cmd.CommandText   =   "select   *   from   Message   order   by   id   desc ";
                                        OleDbDataReader   sdr   =   cmd.ExecuteReader();
                                        this.DataList1.DataSource   =   sdr;
                                        this.DataList1.DataBind();


------解决方案--------------------
我用adapter+DataSet填充数据源绑定datalist,进行添加删除修改后绑定datalist,但是操作进行后需要刷新或者再执行一次操作才能看到上一次的操作效果,而用DataReader直接就可以看到执行效果,不知道是为什么.
----------------------
看不到你执行代码,所以不知道有没有从新绑定
------解决方案--------------------
protected void SetBind()
{
SqlConnection con=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings[ "Conn "]);
SqlDataAdapter da=new SqlDataAdapter( "select * from upimg ",con);
DataSet ds=new DataSet();
da.Fill(ds, "table1 ");
for(int i=0;i <ds.Tables[ "table1 "].Rows.Count;i++)
{
ds.Tables[ "table1 "].Rows[i][ "type "] = se.dtcase(ds.Tables[ "table1 "].Rows[i][ "type "].ToString());