我的gridview在asp里绑定了一个SqlDataSource,SqlDataSource的SelectCommand为select * from 表,
gridview中又添加了2个CommandField 编辑和删除.因为我要在gridview里做选择,点击button使SelectCommand为select * from 表 where name='user'然后gridview里显示的就只有user的数据了,然后我在点击编辑,比如说第一条,然后出来的可编辑状态,
选中的行居然是select * from 表 时的第一条...请问怎么办?

解决方案 »

  1.   

    点击button使SelectCommand为select * from 表 where name='user' 
    后面重新绑定下
    gridview.datasource=null;
    gridview.datasource=...
      

  2.   

    debug吧,你数据哪里没在绑定好.试试应该能出来的.
      

  3.   

    我跟了一下代码的执行顺序,发现无论触发什么事件都要先取走一遍form_load的,所以当我编辑的时候他又重新绑定了一下select * from 表 然后取出来就是这个状态下的第一个了.
    那我要怎么办才能解决呢?
      

  4.   

    是不是用sqldatasource绑定gridview不好?
      

  5.   

    在form_load里做判断
    if(!IsPostBack){
    //用"select * from 表"绑定
    }
    这样就就不会每次都重新绑定"select * from 表"了
      

  6.   

    SelectCommand最好不要改变!!改变where后面的参数,
    可这样写:
    ......SelectCommand="SELECT * FROM [表] WHERE ([name] LIKE  + @name )">
    ....
    全部显示在Page_Load中:
        protected void Page_Load(object sender, EventArgs e)
        {
            SqlDataSource1.SelectParameters["name"].DefaultValue = "%";
        }要显示特定的:
         string name1="张三";
         SqlDataSource1.SelectParameters["name"].DefaultValue = name1;
         GridView1.DataBind();
      

  7.   

    传说中的SqlDataSource
    哈哈  没用过这玩意。。这东西太死了。。
      

  8.   

    的确是可以改善,但是用like不好 可能会有多个人名的.
      

  9.   

    大家都是怎么绑定的?
    是不是SqlDataSource 不好用的,有好的方法吗?
    告诉我一下.
      

  10.   

    用where name ='xxx'
    和where name like 'xxx' 是等价滴!!
    where name like 'xxx' 查出多少,则 where name ='xxx' 也查出多少!!这和where name like 'xxx%'是有区别的
      

  11.   

    (一)vs2002及vs2003访问数据库主要用两种:
    1.SqlConnection
      SqlDataAdapter
      DataSet
    2.SqlConnection
      SqlCommand
      SqlDataReader
    这是最传统的,也是目前大多数用户所用的,(二)自vs2005发布后,访问数据库增加了数据源控件,如:
    ObjectDataSource; SqlDataSourse等等,
    这样一些控件方便了用户,减少了代码的输入量,而且也不易出错,好处还是不少的,
    特别是ObjectDataSource,是一种对象化的控件,配合强类型的dataSet,可使代码量pingjun减少一半.(三)自vs2008发布后,访问数据库又增加了Linq,
    这使访问数据库更加简便!!