我现在在做一个网站的后台,
在后台页面已经获取到了新闻标题的列表页面  在新闻标题后面有个  编辑新闻  和删除新闻的链接 ;
分别是链接到一个新闻编辑页面和一个新闻删除的页面;
我现在想在新闻列表页面点击  编辑新闻 的时候跳到新闻编辑页面,并且在新闻编辑页面对应的位置(textbox)里面显示相应的数据;
当我编辑完内容点击提交修改的按钮后,在sql语句中怎么获取到这条新闻的id值?编辑页面后台代码大概是这样的:用了个sqlhelper文件using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Data.SqlClient;
using System.Xml.Linq;public partial class YXhtgl_ServicesEdit : System.Web.UI.Page
{
    SqlHelper help = new SqlHelper();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            serviceselect(Request["sid"]);
        }
    }    //将读取的数据绑定到编辑页面相应的位置
    public void serviceselect(string sid)
    {
        string sqlservices = "select * from YXServices where SID=" + sid;
        SqlDataReader sdr = help.RunDataReader(sqlservices);
        if (sdr.Read())
        {
            this.tbname.Text = sdr["STitle"].ToString();
            this.FCKeditor1.Value = sdr["SContent"].ToString();
        }
        sdr.Close();
    }    //点击提交按钮时的操作
    protected void btsub_Click(object sender, EventArgs e)
    {
        string strTitle = this.tbname.Text;
        string strContent = this.FCKeditor1.Value;
        string strImg = this.FileUpload1.FileName.ToString();
        if (strImg == "" || strImg == null)
        {
            string sqlupdate1 = "update YXServices set STitle= '" + strTitle + "' , SContent= '" + strContent + "' where SID=" + ???;
            int i = help.ExecuteNonQuery(sqlupdate1);
            if (i > 0)
            {
                Response.Write("<script>alert('提交成功!')</script>");
            }
            else
            {
                Response.Write("<script>alert('提交失败!')</script>");
            }
        }
        else
        {
            string sqlupdate2 = "update YXServices set STitle= '" + strTitle + "' , SContent= '" + strContent + "' , SImage= '" + strImg + "' where SID=" + ???;
            int i1 = help.ExecuteNonQuery(sqlupdate2);
            if (i1 > 0)
            {
                Response.Write("<script>alert('提交成功!')</script>");
            }
            else
            {
                Response.Write("<script>alert('提交失败!')</script>");
            }
        }
        
        
    }
}
还请各位高手帮帮忙!

解决方案 »

  1.   

    你从列表页到编辑页应该传的参数是新闻的id
    在编辑页中根据id找到相应的新闻内容
    那样就不会出现找不到id的问题了
    O(∩_∩)O~
      

  2.   

    如果是url传值的话:
    string sid = Request.QueryString["sid"];
      

  3.   

    Request["sid"]不就是你要找的吗
      

  4.   

    右击编辑或删除,右键菜单选择属性,在地址里面你能看到后面有?SID=30 类似这样的部分
    那么,SID就是你要的参数
    在编辑页面你可以通过Request.QueryString["SID"]来获取参数的值30,
    然后构造Select语句从数据库中查询出这条数据填充到DataTable
    再给表单中的对应项赋值
    编辑完成后提交,构造Update语句
    你可以单独定义一个属性来对SID的值进行安全验证
      

  5.   

    Request["id"]可以获取, 也可以使用 HiddenField控件来保存ID值
      

  6.   

    一般做法就是在新闻编辑页面放一个lable或textbox textbox为不可编辑的  当你在上一个页面点击编辑新闻按钮时就传一个ID过来 然后把这个id赋值给lable或textbox  这时你就可以根据这个ID来进行查询 和修改了 
      

  7.   

    楼主应该是问的是在更新后获得id,可以赋值到viewstate里面去
    如: ViewState["uid"] = uid; 更新后再次取出
    或者:
    string sqlupdate1 = "update YXServices set STitle= '" + strTitle + "' , SContent= '" + strContent + "' where SID="+uid+" ; select @@identity;" ;
    更新的sql后面返回回来接收该id, select @@identity
      

  8.   

    我可以在其他页面通过这样的方式获取到sid值吗?
      

  9.   

    XTBH=Request["sid"]==null?"0":Request["sid"].ToString();
    public string XTBH
    {
    get{return ViewState["xtbh"].ToString();}
    set {ViewState["xtbh"]=value;}
    }
    string sqlupdate2 = "update YXServices set STitle= '" + strTitle + "' , SContent= '" + strContent + "' , SImage= '" + strImg + "' where SID="+XTBH;
      

  10.   

    在编辑新闻 和删除新闻的链接里绑定好sid值,在编辑的页面的Page_Load 里判断一下Request.QueryString["sid"]值是否为空,若为空,值没传过来,不为空时,在设置一个变量 string Sid=Convert。ToInt32(Request.QueryString["sid"]), string sqlupdate1 = "update YXServices set STitle= '" + strTitle + "' , SContent= '" + strContent + "' where SID=" + Sid; 就可以了
      

  11.   

    只要采用url传值,即跳转的页面如a.aspx?sid=*,即可在a.aspx.cs页面上使用string sid = Request.QueryString["sid"]获取值。
      

  12.   

    string sid = Request.QueryString["sid"];
    最简单的!
      

  13.   

    string sid = Request.QueryString["sid"];
      

  14.   

    首先要找出来你点那条纪录的主键ID
    然后页面跳转 用 url.aspx?id=xxx
    在接受页面的page_load里request.QueryString[id]
    继续用sqlhelper查询当前id那条纪录,并且显示
      

  15.   

    string sid = Request.QueryString["sid"].ToString();