PDA

View Full Version : عدم اجرای دستور update



masmosi
شنبه 17 مهر 1395, 19:00 عصر
با سلام
دوستان عزیز من یک صفحه ادیت ایجاد کرده ام که توسط کوئری استرینگ یک ای دی رو میگیره و توسط کد های زیر اون رو در تکست باکسها نشون میرده من در صفحه ام یک دکمه دارم که میخوام بوسیله اون وقتی مقدار تکست باکسها رو تغییر میدم و دکمه ویرایش رو میزنم اطلاعات در دیتا بیس تغییر کن ولی وقتی دکمه ویرایش رو میزنم اطلاعات ویرایش نشده و دوباره اطلاعات قبلی رو درون تکست باکسها نشون میده و برنامه هیچ اخطاری نیز نمیده لطفا راهنمایی کنید.
protected void Page_Load(object sender, EventArgs e)
{
string ConnectionString = ConfigurationManager.ConnectionStrings["tel"].ConnectionString;
SqlConnection telConnection = new SqlConnection(ConnectionString);
string strSelect = "SELECT * FROM telephon WHERE ID= @ID ";
SqlCommand telCommand = new SqlCommand(strSelect,telConnection);
telCommand.Parameters.AddWithValue("@ID",Request.QueryString["Code"]);
telConnection.Open();
SqlDataReader dr = telCommand.ExecuteReader();
dr.Read();
txtCode.Text = dr["ID"].ToString();
txtName.Text = dr["telName"].ToString();
txtFamily.Text = dr["telFamily"].ToString();
txtOrgan.Text = dr["telOrgan"].ToString();
txtTel1.Text = dr["telTel1"].ToString();
txtTel2.Text = dr["telTel2"].ToString();
txtMob1.Text = dr["telMob1"].ToString();
txtFax.Text = dr["telFax"].ToString();
dr.Close();
telConnection.Close();

}

دکمه ویرایش اطلاعات
protected void btnReg_Click(object sender, EventArgs e)
{
string ConnectionString = ConfigurationManager.ConnectionStrings["tel"].ConnectionString;
SqlConnection telConnection = new SqlConnection(ConnectionString);
SqlCommand telCommand = new SqlCommand();
telCommand.Connection = telConnection;
telConnection.Open();
telCommand.CommandText = "UPDATE telephon SET [telName]='" + txtName.Text + "' , [telFamily]='" + txtFamily.Text +
"',[telOrgan]='" + txtOrgan.Text + "' ,[telTel1]='" + txtTel1.Text + "' ,[telTel2]='" + txtTel2.Text +
"',[telMob1]='" + txtMob1.Text + "', [telFax]='" + txtFax.Text + "' WHERE ID='" + txtCode.Text + "'";
telCommand.ExecuteNonQuery();
telConnection.Close();
//Response.Redirect("Index.aspx");
}

barzin144
شنبه 17 مهر 1395, 22:32 عصر
سلام اولین و مهمترین نکته این که هیچ و قت مقدار تکست باکس رو درون کوئری نگذارید احتمال حمله sql injection رو بالا میبره
بعد اگر ID از نوع int باشه تو آپدییت باید مقدار رو به عدد تبدیل کنید و عدد هم نیاز به ' ' نداره

masmosi
شنبه 17 مهر 1395, 23:19 عصر
دوست عزیز کاری که گفتید انجام دادم ولی باز جواب نگرفتم لطفا راهنمایی کنید

masmosi
یک شنبه 18 مهر 1395, 18:52 عصر
دوستان عزیز لطفا راهنمایی کنید ممنون

barzin144
دوشنبه 19 مهر 1395, 00:03 صبح
دوست عزیز کاری که گفتید انجام دادم ولی باز جواب نگرفتم لطفا راهنمایی کنید

دوست عزیز کد جدیدتون رو که تغییر دادید قرار بدید تا بیشتر بتونیم کمک کنیم
گوئری رو در sql جدا گانه تست کردید جواب میده ؟

Beginner67
دوشنبه 19 مهر 1395, 09:45 صبح
دکمه ویرایشتون رو به این کد تغییر بدید:


SqlConnection telConnection = new SqlConnection(ConfigurationManager.ConnectionStrin gs["tel"].ConnectionString);
SqlCommand telCommand = new SqlCommand("UPDATE telephon SET telName=@telName,telFamily=@telFamily,telOrgan=@te lOrgan,telTel1=@telTel1,telTel2=@telTel2,telMob1=@ telMob1,telFax=@telFax WHERE ID=@ID", telConnection);
telCommand.Parameters.AddWithValue("@ID", ID);
telCommand.Parameters.AddWithValue("@telName", textBox1.Text);
telCommand.Parameters.AddWithValue("@telFamily", textBox2.Text);
telCommand.Parameters.AddWithValue("@telOrgan", textBox3.Text);
telCommand.Parameters.AddWithValue("@telTel1", textBox4.Text);
telCommand.Parameters.AddWithValue("@telTel2", textBox5.Text);
telCommand.Parameters.AddWithValue("@telMob1", textBox6.Text);
telCommand.Parameters.AddWithValue("@telFax", textBox7.Text);
telConnection.Open();
telCommand.ExecuteNonQuery();
telConnection.Close();

notlikeothers
چهارشنبه 28 مهر 1395, 11:27 صبح
سلام.اولا این روش کد نویسی واسه دانشگاه خوبه ولی واسه کار تجاری فاجعه هست
شما کدت رو تو رویداد کلیک دکمه در این کد بزارید

if(!page.ispostback)
{
}