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

C# 更新SQL数据源中的查询参数,c#,asp.net,sql-server,C#,Asp.net,Sql Server,我有下面的代码,在经历了一些条件之后更新了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 [f

我有下面的代码,在经历了一些条件之后更新了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();
SqlDataSource sdm=new SqlDataSource(“,”从[database].[dbo].[User Messages]中选择[Message Id],[To],[From],[Reply To],[Date added],其中([To]=@sid或[From]=@sid)和([To]=@qid或[From]=@qid)和[Reply To]=@rid”);
字符串user=Session[“USERID”].ToString();
字符串to=Request[“to”].ToString();
字符串from=Request[“from”].ToString();
sdm.UpdateParameters[“rid”].DefaultValue=Request[“replyid”].ToString();
sdm.UpdateParameters[“sid”]。DefaultValue=用户;
如果(用户==to)
sdm.UpdateParameters[“qid”]。DefaultValue=from;
其他的
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

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


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

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

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

使用带有
Request
的索引器,将使用
Request从
QueryString
表单
Cookies
ServerVariables
集合中获取值。QueryString
直接让您的意图更清晰一点。

如果这确实是问题,应该解决问题,因为简单的打字太本地化了,无法帮助其他人。