我有以下代码在完成某些条件后更新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();
rid
已在查询字符串中设置为?rid=a
答案 0 :(得分:1)
您希望使用Request.QueryString
集合来获取rid
参数:
sdm.UpdateParameters["rid"].DefaultValue = Request.QueryString["rid"];
使用Request
的索引器可以使用QueryString
从Form
,Cookies
,ServerVariables
或Request.QueryString
个集合中获取值直接使你的意图更加清晰。
答案 1 :(得分:0)
查询字符串不应该是?replyid=a
而不是?rid=a?
。
似乎Request["replyid"]
返回null,然后ToString()
抛出异常。