一个页面中显示25条数据,<input name="selectid" type="checkbox" value="<%# DataBinder.Eval(Container.DataItem, "id")%>">每条数据前的复选框,然后是每条数据都有个文本框,文本框里是新闻标题<input name="newstitles=<%# DataBinder.Eval(Container.DataItem, "id")%>" type="text" value="="<%# DataBinder.Eval(Container.DataItem, "newstitles")%>">,如果要更新新闻就选择复选框 然后有个按钮做更新,在这个更新事件里,更新所选择的数据新闻标题,
每页都显示25条数据  更新只更新当前页的25条数据,请问该如何更新呢

解决方案 »

  1.   

    一个页面中显示25条数据,<input name="selectid" type="checkbox" value="<%# DataBinder.Eval(Container.DataItem, "id")%>">每条数据前的复选框,然后是每条数据都有个文本框,文本框里是新闻标题<input name="newstitles=<%# DataBinder.Eval(Container.DataItem, "id")%>" type="text" value="<%# DataBinder.Eval(Container.DataItem, "newstitles")%>">,如果要更新新闻就选择复选框 然后有个按钮做更新,在这个更新事件里,更新所选择的数据新闻标题,每页都显示25条数据  更新只更新当前页的25条数据,
    请问该如何更新呢
      

  2.   

    一条一条更新了
    string[] arraryid = Request.Parmas["selectid"].Split(',');
    string updateSql = "update set [title]={0} where [id]='{1}'";
    for(int i = 0 ; < arrayid.length ; i ++ )
    {
    //构造执行语句 
    string updateSqlID = string.Format(updateSql ,Request.Parmas["newstitles="+arraryid [i] ] ,arraryid[i]));
    //执行
    //your code 
    }
      

  3.   

    拼接字符串,然后在sqlserver创建一个存储过程,在该存储过程中建立事务来执行拼接的字符串。
    1.拼接字符串
    StringBuilder sql = new StringBuilder();
    sql.Append("update Table set a=1,b=1 where id=1;")    //插入第一条
    .Append("update Table set a=2,b=2 where id=2;") ;      //第二条 
     通过sql.ToString()得到最后要执行的sql语句,把它传到数据库执行。注意:在拼接字符串要过滤一些特殊字符防止sql注入。2.在sql server 2000创建一个存储过程,在此存储过程中创建一个事务,然后在此事务中执行拼接的字符串。简单示例代码:
    ALTER procedure BatchUpdate
    @sqlstr varchar(8000)   --拼接的字符串
    as
    declare @errorCode int
    select @errorCode=@@errorbegin transaction
    if @errorCode=0
    begin
    exec(@sqlstr )
    select @errorCode=@@error
    end
             if @errorCode=0
    commit transaction
    else
    rollback transaction
      go