PDA

View Full Version : استفاده از querystring



salmah
پنج شنبه 08 خرداد 1393, 23:56 عصر
با سلام یه سوال خیلی ساده.
چه جوری میشه اطلاعات querystringرابریزم تو یه textbox:خجالت:

shahram176
جمعه 09 خرداد 1393, 00:11 صبح
به رشته تبدیلش کنید وبریزید تو textbox

salmah
جمعه 09 خرداد 1393, 00:15 صبح
به رشته تبدیلش کنید وبریزید تو textbox

row["cid"] = QueryString.ToString();


اینجوری که نوشتم ایراد میگیره

shahram176
جمعه 09 خرداد 1393, 08:55 صبح
مثل این
id = Int32.Parse((Request.QueryString["id"]));

salmah
جمعه 09 خرداد 1393, 13:24 عصر
تشکر .حالا میخوام دوتا مقدار را باهم مقایسه کنم مقداریکی از داخل جدول و مقدار یکی از querystring گرفته میشه
چه جوری بنویسم


if (row["sid"].ToString() == Request.QueryString["sid"]).Tostring())

اگر به جای TostringبنویسمText بازم نمیشه

shahram176
جمعه 09 خرداد 1393, 13:59 عصر
اگه بگید دقیقا چه کاری میخواهید انجام بدید دوستان بهتر میتونن راهنمایی کنن

salmah
جمعه 09 خرداد 1393, 18:53 عصر
خب من میخوام امکان ویرایش یه سری امکانات رو تو سایتم بذارم.
مرحله اول آوردن اطلاعات به یه صفحه و مرحله دوم ذخیره این تغییرات در جدول مورد نظر هست .
مرحله اول درست کار می کنه یعنی با استفاده از dataset و queyگرفتن تونستم اطلاعات را توی txtbot,dropdownlist های مربوط بریزم ولی برا ثبت تغییرات باید بگرده و sid را پیدا کنه واطلاعات جدید را با قبلی مقایسه کنه وبروزرسانی اشون کنه که این جوری نوشتم ولی کار نمی ده

SqlConnection cnc = new SqlConnection();
SqlCommand cmd = new SqlCommand();
SqlDataAdapter adapter = new SqlDataAdapter();
SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
DataSet dataset = new DataSet();

cnc.ConnectionString = ConfigurationManager.ConnectionStrings["shbtConnectionString"].ToString();

cmd.Connection = cnc;
cmd.CommandText = "SELECT * FROM tsabt";
adapter.SelectCommand = cmd;
adapter.Fill(dataset, "tsabt");


foreach (DataRow row in dataset.Tables["tsabt"].Rows)
{
if (row["sid"].Text == Request.QueryString["sid"]).Text)

{
row["oid"] = dd_oid.SelectedValue;
row["nid"] = dd_nid.SelectedValue;
row["mid"] = dd_mid.SelectedValue;
row["bid"] = dd_bid.SelectedValue;
row["dta"] = dta.Text;
row["accept"] = CheckBox1.Checked;
}
try
{
int result = adapter.Update(dataset, "tsabt");
if (result > 0)
Response.Redirect("accept.aspx");
else
Response.Redirect("pm.aspx");
}
catch
{
Response.Redirect("pm2.aspx");
}
}

}

مشکل من تو خط 17 است

shahram176
جمعه 09 خرداد 1393, 19:13 عصر
اطلاعات جدید را چرا با قبلی مقایسه میکنید؟

salmah
جمعه 09 خرداد 1393, 19:54 عصر
نه میخوام sid پیدا بشه.
الان باید چه کار کنم تا این اطلاعات جایگزین قبلی بشه

salmah
جمعه 09 خرداد 1393, 19:57 عصر
یعنی بگم اونی که sid اش مساویquerystring است راجایگزین اش کنه

shahram176
جمعه 09 خرداد 1393, 20:04 عصر
خب شما از دستور آپدیت استفاده کنید و براش شرط بزارید
int id;
id = Int32.Parse((Request.QueryString["id"]));
string stConnection = WebConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ToString();
string stCmd = "update tucontact set IsRead=1 where cuid=@cuid";
cmmd = new SqlCommand(stCmd, cnc);
cmmd.Parameters.AddWithValue("@cuid", id);
try
{
cnc.Open();
cmmd.ExecuteNonQuery();
}
finally
{
cnc.Close();

salmah
جمعه 09 خرداد 1393, 20:57 عصر
اگر امکان داره همین کدخودم را بهینه کنید اینو متوجه نمیشم.
البته تغییراتی اعمال کردم. و اومدم sid را توی یه labelریختم. وخط17 را ایجوری نوشتم

if (row["sid"] == Label2.Text)

ولی ازrow ایراد میگیره