C# 更新SQL数据源中的查询参数
我有下面的代码,在经历了一些条件之后更新了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
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
直接让您的意图更清晰一点。如果这确实是问题,应该解决问题,因为简单的打字太本地化了,无法帮助其他人。