更新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

更新SQL数据源中的查询参数

您将需要使用Request.QueryString集合来获取rid参数:

sdm.UpdateParameters["rid"].DefaultValue = Request.QueryString["rid"];

使用Request的索引器将获得QueryString, Form, CookiesServerVariables集合的值,使用Request.QueryString直接使您的意图更清晰。

查询字符串不应该是?replyid=a而应该是?rid=a?

似乎Request["replyid"]返回null,然后ToString()抛出异常。