如何从以下网址获取特定值我只需要获得3个值
http://earnprofitclickint.com/UserWorking/Successfull.aspx?lr_paidto=U9925362&lr_amnt=2.00&lr_currency=LRUSD&lr_store=http%3A%2F%2Fwww.earnprofitclickint.com&lr_merchant_ref=&lr_paidby=U3563444&lr_fee_amnt=0.00&lr_transfer=143636187&lr_timestamp=2013-12-05+18%3A31%3A33&ctl00%24contentplaceholder1%24amount=&ctl00%24contentplaceholder1%24id=70&ctl00%24contentplaceholder1%24txtamount=+2&ctl00%24contentplaceholder1%24username=networker&lr_encrypted=04E20ADA982A2AF9C1C64DB3C1601BA596373E22D7B4D21813A51C43DC0198CD&lr_encrypted2=59C8269D431F915360F3B8179EC95181D8C458AB91D72AF3DFC1DC0DFDAC4F64
我想从Liberty Reserve Website返回上述URL中的3个值,并希望使用LINQ TO SQL将这三个值插入数据库
我需要获得以下值
r_amnt=2.00 ID=70 username=networker
我已在页面加载中编写代码,以便在响应到达并重定向到我的成功页面时获取上述值:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ID.Value = Request.QueryString["id"].ToString();
UserName.Value = Request.QueryString["username"].ToString();
Amount.Value = Request.QueryString["lr_amnt"].ToString();
SaveLocalHistory();
Divmessage.Visible = true;
}
}
public void SaveLocalHistory()
{
MLMDataContext db = new MLMDataContext();
UsersInvestement pd = new UsersInvestement();
pd.Amount = Convert.ToDouble(Amount.Value);
pd.UserId = Convert.ToInt32(ID.Value);
pd.UserName = UserName.Value;
pd.Description = "This amount has been received From LR";
pd.IncomeTypeId = 4;
pd.CreatedDate = DateTime.Now.Date;
db.UsersInvestements.InsertOnSubmit(pd);
db.SubmitChanges();
}
这是URL中的手动更改:
如果我手动更改它,那么它可以工作。有什么想法吗?
答案 0 :(得分:1)
您的参数名称不是username
和id
,ctl00$contentplaceholder1$username
为username
,ctl00$contentplaceholder1$id
为id
自URLDecode提供%24
后$
,您也需要进行相应的替换。
试试这个:
ID.Value = Request.QueryString["ctl00$contentplaceholder1$id"].ToString();
UserName.Value = Request.QueryString["ctl00$contentplaceholder1$username"].ToString();
Amount.Value = Request.QueryString["r_amnt"].ToString();
它应该有效。别的我知道! :)
答案 1 :(得分:0)
我相当确定查询字符串值区分大小写,这意味着此代码
ID.Value = Request.QueryString["ID"].ToString();
UserName.Value = Request.QueryString["UserName"].ToString();
Amount.Value = Request.QueryString["lr_amnt"].ToString();
应该采用这种形式
ID.Value = Request.QueryString["id"].ToString();
UserName.Value = Request.QueryString["username"].ToString();
Amount.Value = Request.QueryString["r_amnt"].ToString();
如果你想拉出“r_amnt = 2.00 id = 70 username = networker”
顺便说一句,请注意,您从不处理数据库上下文。这可能是危险的,因为很可能你的连接很长时间没有关闭,我建议这样做:
using( MLMDataContext db = new MLMDataContext() )
{
UsersInvestement pd = new UsersInvestement();
pd.Amount = Convert.ToDouble(Amount.Value);
pd.UserId = Convert.ToInt32(ID.Value);
pd.UserName = UserName.Value;
pd.Description = "This amount has been received From LR";
pd.IncomeTypeId = 4;
pd.CreatedDate = DateTime.Now.Date;
db.UsersInvestements.InsertOnSubmit(pd);
db.SubmitChanges();
}
using语句确保在DataContext上调用Dispose
(继承自IDisposable),并在操作完成后正确关闭连接。