PDA

View Full Version : سوال: تغییر در قطعه کد حذف از بانک اطلاعاتی



yaser655
شنبه 09 مرداد 1389, 00:45 صبح
با سلام - میخواستم این قطعه کد حذف از بانک اطلاعاتی را به صورتی در آورم که :
1- هنگامی که اسمی از پایگاه داده حذف می شود یک پیغام داده شود.
2- اگر نام فردی در پایگاه داده نبود پیغام مربوطه داده شود.

private void button1_Click(object sender, EventArgs e)
{

strcon = "Provider=Microsoft.jet.OLEDB.4.0;" + "data source =d:\\mana.mdb";
con = new OleDbConnection(strcon);
con.Open();
strsql = "Delete from mana where Lastname=" + "'" + textBox1.Text + "'";
da = new OleDbDataAdapter(strsql, con);
da.Fill(ds, "mana");
ds.Clear();
textBox1.Text = "";


}
}
}

aghayex
شنبه 09 مرداد 1389, 06:19 صبح
دوست عزیز شما دو راه دارید راه اول که یه کم بی کلاس و کثیف کار داره اینه که یه دستور قبل از دستور حذف درست کنی و بعدش یه if بذاری و مقدار سطرها شو بررسی کنی که اگه 0 بود خوب کسی نیست و بعد دستور حذف رو اجرا کنی .
ام راه حل دوم اینه که از stor procedur استفاده کنی و یه متغیر تشخیص خطا هم همراه متغیرهات به sp بفرستی و تمام شرط و دستور حذف رو در اونجا بویسی

yaser655
شنبه 09 مرداد 1389, 08:25 صبح
ببخشید میخواستم این توضیحی که دادید قطعه کدش را بنویسید چون اصلا با راه حل دوم آشنایی ندارم . من تازه دارم با سی شارپ کار میکنم اگر ممکنه دوستان قطعه کدش را بنویسید.

majid_del
شنبه 09 مرداد 1389, 13:01 عصر
بهترین کار اینکه قبل از دستور حذف یه دستور select بنویسی و count اون رو بگیری مثل زیر
select count(*) from mana where lastname=. . .
یعنی دستوراتش مثل همون حذفه فقط اولش باید select count(*) بذاری تا مشخص بشه کسی برای حذف وجود داره یانه ضمنا تو دستورات پایین تر هم دیتا ست رو پاک نکن و از همونجا تعداد رکورد یا همون Count رو حساب کن و مقدار دیتا ست رو بریز توی یه متغیر به نام Count
ds.Tables[0].Rows[0][0]; int Count=حالا یه if بذار اگر مقدار این Countبزرگتر از صفر هست عملیات حذف رو انجام بده و اگر نیست پیغام چنین کسی برای حذف وجود ندارد را بده و اگر حذف داشتی مقدار Countرو به عنوان تعداد حذفی ارائه بده