PDA

View Full Version : مبتدی: مشکل با دستور if



mortezasar
دوشنبه 01 آبان 1391, 18:43 عصر
سلام من میخوام اطلاعات رو از دیتا بیسم پاک کنم و اطلاعات تکراری هم زیاد دارم یک شرط گذاشتم تا چک کنه سطری که میخواد پاک بشه همون سطری هست که کاربر اطلاعاتش رو وارد کرده و یا نه
از این دستور استفاده کردم اما حتی اگه اطلاعات رو درس وارد کرده باشم پیغام خطا رو نمایش اما اگه دستور if رو بردارم و همون اطلاعات رو وارد کنم اطلاعات رو حذف میکنه میشه کمک کنید

int id;
string rosta;
string mas;
id = Int32.Parse(gvmasdel.CurrentRow.Cells[3].Value.ToString());
rosta = gvmasdel.CurrentRow.Cells[1].Value.ToString();
mas = gvmasdel.CurrentRow.Cells[2].Value.ToString();
if (Int32.Parse(txtid.Text) == id & txtrostaname.Text == rosta & txtmasname.Text == mas)
{
cmd1.CommandText = "delete from Table_Masjed where rostaname = '" + txtrostaname.Text.Trim() + "' and mas_name= '" + txtmasname.Text.Trim() + "' and id='" + txtid.Text.Trim() + "' ";
cmd1.ExecuteNonQuery();
MessageBox.Show("اطلاعات با موفقیت حذف شد", "", MessageBoxButtons.OK);
}
MessageBox.Show("خطا");

mortezasar
دوشنبه 01 آبان 1391, 18:55 عصر
int16 رو استفاده کردم اما فرقی نکرد بازم وقتی اطلاعات رو درست وارد می کنم پیغام خطا رو نشون میده

silverfox
دوشنبه 01 آبان 1391, 18:56 عصر
دوست عزیز در #c
& عملیات and بیتی هست و && عملیات and منطقی که چیزی هست که شما می خواهید
برای OR هم | بیتی و || منطقی است.
پس باید & رو به && تغییر بدید تا اون چیزی بشه که منظورتون هست.

در ضمن می تونی از string.format و یا sqlparameter استفاده کنی تا اون sql commandت قشنگ تر و خوانا تر بشه تکه پاره نباشه اونطوری :دی

mortezasar
دوشنبه 01 آبان 1391, 19:01 عصر
از && استفاده کردم اما بازم پیغام خطا میاد

morteza271
دوشنبه 01 آبان 1391, 19:04 عصر
vaghti variable int migiri bayad int16 parse koni
دوست عزیز بی خیال ................

شما برنامتون رو Trace کنید و وقتی که به خط دستور if رسیدین چک کنید ببینید که ایا داده های چک شده باهم برابرند یا نه!!!

Mahmoud Zaad
دوشنبه 01 آبان 1391, 19:09 عصر
سلام
چه خطایی میده متنش رو بذارید. بعد اینجوری که شما نوشتید در هر حالت یه مسیج باکس خطا نمایش داده میشه.

mortezasar
دوشنبه 01 آبان 1391, 19:17 عصر
خطا نمیده مسیج باکس خطا رو نشون میده
اگه اطلاعات رو درست هم وارد کنم وارد دستور if نمیشه و فقط مسیج باکس خطا رو نشون میده

morteza271
دوشنبه 01 آبان 1391, 19:21 عصر
تریس کردین برنامتون رو؟؟

کدتون رو اینطوری بنویسین ببینید درست نمیشه :
string id;
string rosta;
string mas;
id = gvmasdel.CurrentRow.Cells[3].Value.ToString().Trim();
rosta = gvmasdel.CurrentRow.Cells[1].Value.ToString()Trim();
mas = gvmasdel.CurrentRow.Cells[2].Value.ToString().Trim();
if (txtid.Text.Trim() == id & txtrostaname.Text.Trim() == rosta & txtmasname.Text.Trim() == mas)
{
cmd1.CommandText = "delete from Table_Masjed where rostaname = '" + txtrostaname.Text.Trim() + "' and mas_name= '" + txtmasname.Text.Trim() + "' and id='" + txtid.Text.Trim() + "' ";
cmd1.ExecuteNonQuery();
MessageBox.Show("اطلاعات با موفقیت حذف شد", "", MessageBoxButtons.OK);
}
else
MessageBox.Show("خطا");

mortezasar
دوشنبه 01 آبان 1391, 19:35 عصر
میشه بگین چه جوری تریس کنم تا داده ها رو بتون ببینم

r_s1389@yahoo.com
دوشنبه 01 آبان 1391, 20:33 عصر
مقدارهای
int id;
string rosta;
string mas;
را با مقدار تکس باکس هات چک کن ببین یکی است یا نه
موفق باشی

hakim22
سه شنبه 02 آبان 1391, 19:46 عصر
این خط
MessageBox.Show("خطا");

خارج از محدوده ی if است و در هر صورت اجرا میشه !
اشتباه لپی !

mortezasar
سه شنبه 02 آبان 1391, 23:34 عصر
مشکل حل شد دوستان