更新SQL数据源中的查询参数
本文关键字:查询 参数 SQL 数据源 更新 | 更新日期: 2023-09-27 17:54:44
我有以下代码,更新SQL数据源的查询参数的值后,通过一些条件。
SqlDataSource sdm = new SqlDataSource("<our connection string>", "SELECT [Message Id] ,[To] ,[From] ,[Reply To] ,[Subject] ,[Message] ,[Date added] FROM [database].[dbo].[User Messages] where ([to]=@sid or [from]=@sid) and ([to]=@qid or [from]=@qid) and [reply to]=@rid");
string user = Session["USERID"].ToString();
string to = Request["to"].ToString();
string from = Request["from"].ToString();
sdm.UpdateParameters["rid"].DefaultValue = Request["replyid"].ToString();
sdm.UpdateParameters["sid"].DefaultValue = user;
if (user == to)
sdm.UpdateParameters["qid"].DefaultValue=from;
else
sdm.UpdateParameters["qid"].DefaultValue= to;
sdm.Update();
sdm.DataBind();
Repeater1.DataSource = sdm;
Repeater1.DataBind();
显示sdm.UpdateParameters["rid"].DefaultValue = Request["replyid"].ToString();
处的NullReferenceException
rid
在查询字符串中已经设置为?rid=a
您将需要使用Request.QueryString
集合来获取rid
参数:
sdm.UpdateParameters["rid"].DefaultValue = Request.QueryString["rid"];
使用Request
的索引器将获得QueryString
, Form
, Cookies
或ServerVariables
集合的值,使用Request.QueryString
直接使您的意图更清晰。
查询字符串不应该是?replyid=a
而应该是?rid=a?
吗
似乎Request["replyid"]
返回null,然后ToString()
抛出异常。