PDA

View Full Version : عدم به روز رسانی تکست باکس ها



bahar_engineer
یک شنبه 07 تیر 1388, 18:16 عصر
یه فرم دارم که شامل تعدادی تکست باکس هست ... می خوام این فرم رو به روز رسانی کنم ... تکست باکس ها از داده های بانک پر می شوند یعنی موقع لود صفحه تکست باکس ها شامل مقادیری هستند که درون بانک هست

حالا می خوام آپدیت کنم و تکست باکس ها بعد از زدن دکمه update به روز رسانی نمی شن مقادیرشون همون مقادیر قبلی هست... توی یکی از پست ها گفته بودن ispostback اما من استفاده کردم فکر کنم اشتباه گذاشتمش

کد رو گذاشتم لطفا بررسی کنین

اول تکست باکس ها با داده های بانک پر می شن:



TextBox1.Text = dr["title"].ToString();
DropDownList1.Text = dr["type"].ToString();
TextBox2.Text = dr["born"].ToString();



بعد هم به روز رسانی می شن:



protected void Button1_Click(object sender, EventArgs e)
{
if (IsPostBack)
{
string m, w, sa;
m = Request["id"];
w = "Provider=microsoft.jet.oleDb.4.0;Data Source=" + Server.MapPath("newgames.mdb");
OleDbConnection con = new OleDbConnection(w);

sa = "update addgame set title='" + TextBox1.Text + "', type='" + DropDownList1.Text + "' , born='" + TextBox2.Text + "' , presentation='" + TextBox3.Text + "' , cd='" + TextBox4.Text + "' , dvd='" + TextBox5.Text + "' , system='" + TextBox6.Text + "' , summerize='" + TextBox7.Text + "' , cost='" + TextBox8.Text + "' , montakhab='" + DropDownList2.Text + "' , pic='" + t1 + "' where code=" + m;
OleDbCommand cmd = new OleDbCommand(sa, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}


وقتی ispostback! می ذارم که اصلاً مقادیر تکست باکس های معمولی هم به روز نمی شن

آخه 2 تکست باکس و یک دراپ داون لیست که کدشو اول گذاشتم رو با بانک پر می کنم و قابل به روز رسانی هستند... بقیه تکست باکس ها خالی لود می شن و بعد از پر شدن به روز رسانی می شن... اونها مشکلی ندارن.. اونهایی که با داده های بانک پر شده اند و حالا می خوام به روز کنم اصلاً تغییر نمی کنن

milade
یک شنبه 07 تیر 1388, 19:14 عصر
سلام

یه اشتباه لپی !

شما باید در حین لود کردن از IsPostBack استفاده کنید نه حین اپدیت !
توی پیج لود پست بک رو چک کنید و توی باتن هم الزامی نیست و بهتره نباشه ...

موفق باشید

hobab-theme
یک شنبه 07 تیر 1388, 20:43 عصر
توی یکی از پست ها گفته بودن ispostback اما من استفاده کردم فکر کنم اشتباه گذاشتمش
اصلاً تو رویداد کلیکی که شما استفاده کردید نیازی به IsPostBack نیست ( همون طور که دوستمون اشاره کردند)
البته من #C کار نکردم ولی میتونم یه پیشنهاد به شما بدم
متغیرهاتون رو به صورت پارامتر مقدار دهی کنید
یعنی این رو


title='" + TextBox1.Text + "'

به این تبدیل کنید


title=@title

بعد هم اینجور


sa.Parameters.Add("@title",TextBox1.Text)

البته این VB هست ولی امیدوارم خیلی تفاوت نداشته باشه
شما اصول کار رو دریابید
موفق باشید