Noor Rahman
Noor Rahman

Reputation: 155

How I can get specific values from URL in ASP.NET

How I can get specific values from the following URL I need to get only 3 values

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

I want to get 3 values from the above URL return from Liberty Reserve Website and want to insert these three values to database using LINQ TO SQL

I need to get the following values

r_amnt=2.00 ID=70 username=networker

I have written the code in page load to get the above values when the response come and Redirect to my successful page:

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();
}

This is a manual change in the URL:

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&amount=&ctl00%24contentplaceholder1&id=70&ctl00%24contentplaceholder1%24txtamount=+2&ctl00%24contentplaceholder1&username=networker&lr_encrypted=04E20ADA982A2AF9C1C64DB3C1601BA596373E22D7B4D21813A51C43DC0198CD&lr_encrypted2=59C8269D431F915360F3B8179EC95181D8C458AB91D72AF3DFC1DC0DFDAC4F64


If I change it manually then it works. Any idea?

Upvotes: 3

Views: 5153

Answers (2)

Sunny R Gupta
Sunny R Gupta

Reputation: 5126

Your parameter names are not username and id, they are ctl00$contentplaceholder1$username for username and ctl00$contentplaceholder1$id for id

Since %24 when URLDecode gives $ , you need to do the corresponding replacements too.

Try this:

ID.Value = Request.QueryString["ctl00$contentplaceholder1$id"].ToString();
UserName.Value = Request.QueryString["ctl00$contentplaceholder1$username"].ToString();
Amount.Value = Request.QueryString["r_amnt"].ToString();

and it should work. Let me know otherwise! :)

Upvotes: 1

Travis J
Travis J

Reputation: 82267

I am fairly certain that the query string values are case sensitive, meaning that this code

ID.Value = Request.QueryString["ID"].ToString();
UserName.Value = Request.QueryString["UserName"].ToString();
Amount.Value = Request.QueryString["lr_amnt"].ToString();

should probably be in this form

ID.Value = Request.QueryString["id"].ToString();
UserName.Value = Request.QueryString["username"].ToString();
Amount.Value = Request.QueryString["r_amnt"].ToString();

if you wanted to pull out "r_amnt=2.00 id=70 username=networker"


As an aside, note that you never dispose of your database context. This can be dangerous in that it is possible your connection will not close for a very long time, I would suggest doing this instead:

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();
}

The using statement ensures that Dispose is called on the DataContext (which inherits from IDisposable) and will properly close the connection once the actions complete.

Upvotes: 0

Related Questions