View Full Version : مشکل در بروزرسانی چند رکورد بصورت همزمان
zamani.o
چهارشنبه 02 اسفند 1391, 18:27 عصر
سلام دوستان، من میخوام چند تا رکورد رو که توی یه جدول هستش رو بصورت همزمان آپدیت کنم،
مثلا اگه id برابر 1 بود فیلد xش رو 2 بکن،اگه idبرابر 2 بود فیلد x رو 4بکن و...
لطفا اگه میشه رهنماییم کنین. ممنون
farazjalili
چهارشنبه 02 اسفند 1391, 18:51 عصر
سلام این فقط یک ایده است حالا شاید از لحاظ تکنیکی اشتباه باشه
می تونی از یک حلقه استفاده کنی و مقدار id در در دستور update یک متغییر بگیری و هر باری که حلقه اجرا می شه به اون متغییر یکی اضافه کنی ، فقط این مشکل پیش می یاد که اگر id ها به ترتیب نباشن خطا می ده که قبلش می تونی چک کنی چنین رکوردی با id وجود داره یا نه .
zamani.o
چهارشنبه 02 اسفند 1391, 19:11 عصر
یعنی داخل حلقه هر ار کانکشن رو باز کنم و ExecuteNonQuery اجرا کنم و باز ببندم؟
zamani.o
پنج شنبه 03 اسفند 1391, 10:25 صبح
نه x داده ای هستش که از ورودی خوانده میشه و میتونه همه چی باشهو تعداد آپدیت ها حدود 50 تا هستش
az.heidarzadeh
پنج شنبه 03 اسفند 1391, 10:52 صبح
میتونی یه دستور update بنویسی و مقدار id,x رو ورودی بگیری x رو ست کنی و id رو توی where بزاری و هر تعداد که میخوای اونو از سمت کد fبرنامه فراخونی کنی منظورت چیه که میخوای همزمان update بشن؟...
zamani.o
پنج شنبه 03 اسفند 1391, 10:56 صبح
توی ویرایش نمره دانشجو، باید کل جدول یه بار آپدیت بشه، منم میخوام کل جدول رو یه بار آپدیت کنم.یعنی تک تک رکورد هارو همزمان بروزرسانی کنم.
samani
پنج شنبه 03 اسفند 1391, 13:23 عصر
سلام دوستان، من میخوام چند تا رکورد رو که توی یه جدول هستش رو بصورت همزمان آپدیت کنم،
مثلا اگه id برابر 1 بود فیلد xش رو 2 بکن،اگه idبرابر 2 بود فیلد x رو 4بکن و...
نه x داده ای هستش که از ورودی خوانده میشه و میتونه همه چی باشهو تعداد آپدیت ها حدود 50 تا هستش
بالاخره ما نفهميديم x فيلد هستش يه داده كه از كاربر گرفته ميشه !
ولي شما براي آپديت يك فيلد كه نسبت به شرايط مقدار ميگيره ميتونيد از دستور CASE استفاده كنيد
مثال:
UPDATE TestTable SET
x = CASE id
WHEN 1 THEN 2
WHEN 2 THEN 4
ELSE x
END
zamani.o
پنج شنبه 03 اسفند 1391, 20:37 عصر
بالاخره ما نفهميديم x فيلد هستش يه داده كه از كاربر گرفته ميشه !
ولي شما براي آپديت يك فيلد كه نسبت به شرايط مقدار ميگيره ميتونيد از دستور CASE استفاده كنيد
مثال:
UPDATE TestTable SET
x = CASE id
WHEN 1 THEN 2
WHEN 2 THEN 4
ELSE x
END
ممنونم از جواب کاملتون
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.