PDA

View Full Version : سوال: فهمیدن وجود یک رکورد در Database



HosseinP
یک شنبه 09 اسفند 1394, 17:16 عصر
سلام دوستان
چطور میشه در هنگام حذف فهمید که ایا این رکوردی که داره پاک میکنه وجود داره یا نه؟

vB.N3T
یک شنبه 09 اسفند 1394, 17:37 عصر
برای حذف یه رکورد در بانک یه شرطی نیازه و عموما ایدی اون رکورد هستش مگر در مواقع خواصی فیلد دیگه
برات یه مثال با Linq میزنم متوجه بشی بهتر

var select2 = from s in db.Tbl_MotorHome2s
where s.id == int.Parse(txtid.Text)
select s;
DialogResult back = MessageBox.Show("آیا کشاورز انتخاب شده از سیستم حذف شود؟", "تاید حذف", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (back == DialogResult.Yes)
{
db.Tbl_MotorHome2s.DeleteAllOnSubmit(select2);
db.SubmitChanges();

pbm_soy
یک شنبه 09 اسفند 1394, 17:52 عصر
منظور شما را درست متوجه نشدم!
اگر میخواهید قبل از حذف کردن مطمئن شوید همچین رکوردی وجود دارد؟ و یا بعداز حذف کردن میخواهید مطمئن شوید رکوردی را حذف کرده اید یا خیر؟ برای چنین کاری میتوانید از مقدار برگشتی متد ExecuteNoneQuery() استفاده کنید
این متد که مربوط به sqlCommand میباشد یک عدد به عنوان تعداد رکوردهایی که تاثیر گذاشته برمیگرداند به این ترتیب میتوانید بفهمید دستور sql شما که اجراش تمام شده چند رکورد اضافه کرده یا چند رکورد را حذف کرده و یا چند رکورد را ویرایش کرده است
شما در دستور sql مربوط به حذف (delete) شرطی را میگذارید که میتواند شامل یک یا چند رکورد شود که پس از بررسی مقدار برگشتی این تابع میتوانید بفهمید که چند تا رکورد با این شرط وجود داشته اند که حالا حذف شدند.
بررسی کردن مقدار برگشتی این تابع مهم که خیلی از دوستان متاسفانه آنرا نادیده میگیرند بدنیست به چند تا نکته اشاره کنم
- با همین مقدار برگشتی از اجرا شدن صحیح دستورات میتوانید مطمئن شوید
- با همین مقدار برگشتی میتوانید در برنامه نویسی تراکنشی از آن استفاده کنید (چند روز پیش همین موضوع در همین سایت پیش آمده بود) حتی میتوانید عملیات تراکنشها را خودتان مستقیما پیاده سازی کنید بدون استفاده از امکانات و دستورات مربوط به تراکنشها
- با همین مقدار برگشتی میتوانید از حملات Sql Injection جلوگیری کنید (.....)