PDA

View Full Version : بررسی یک ستون (فیلد)



mehran63
دوشنبه 06 شهریور 1391, 12:05 عصر
سلام
فرض کنید یک جدول با سه ستون code,fn,ln داریم
میخواهیم با دستور شرطی تک تک فیلدهای ستون code را بررسی کنیم که اگر هر کدام از code=1 بود فلان کار را انجام بده
زبان برنامه نویسی C#‎‎ در محیط ASP.NET

Mohammadvb6
دوشنبه 06 شهریور 1391, 13:35 عصر
DataSetName.Tables["نام جدول"].Rows[شماره سطر][نام ستون]

mehran63
دوشنبه 06 شهریور 1391, 15:55 عصر
آیا منظور دستور زیر است ؟

for(int i=0; i < ds.Tables[0].Rows.Count;i++)
if(ds.Tables[0].Rows[i]["code"]=="1")


حالا وقتی که فیلد را پیدا کرد اگه بخوایم آن فیلد را تغییر (update) کنیم چه باید کرد
منظورم را دقیقتر بگم
فرض کنید با دستور بالا پیدا کرد که فیلد code در سومین رکورد خود مقدار 1 (code=1) را دارا میباشد، اگر بخواهیم این مقدار را به صفر تغییر دهیم چه باید کرد

aliblue
سه شنبه 07 شهریور 1391, 08:21 صبح
خب توی همون دستور،بعد از این که فیلد code رو استخراج کردی،اگه برابر 1 بود، فیلد کلید رو هم مقدارشو پیدا کن،بعد یه دستور Update روی اون کلید بنویس.

ولی اگه میخوای فقط Update کنی و کار دیگه توی asp.net نمیخوای روش انجام بدی،خب از اول بنویس:
Update TableName
set (فیلد های مورد نظر)=مقادیر مورد نظر
Where code='1'

mehran63
سه شنبه 07 شهریور 1391, 10:31 صبح
سلام
مسئله اینجاست که نمیخوام همه اونهایی که code=1 هستند update بشوند. بلکه تحت یک شرایطی این کار باید صورت گیرد. دو تا از شرایط رو در زیر گذاشتم
1- اگر تاریخ رکورد فیلدی که code=1 است اگر امروز بود code=0 بکن
2- در شرایطی که مشکل پیش آمد و برنامه از Try به Catch انتقال پیدا کرد مقدار code همان رکوردی که باعث شده به catch برود باید به مقدار صفر (code=0) تغییر پیدا کند

aliblue
سه شنبه 07 شهریور 1391, 13:15 عصر
if(ds.Tables[0].Rows[i]["code"]=="1")
{
if(ds.Tables[0].Rows[i]["tarikh"]==DateTime.Now())
{دستور آپدیت}
String key=ds.Tables[0].Rows[i]["PrimaryKey"].ToString();
}
کلید اصلی رو توی یه متغیر نگهداری کن اگه خطا داد توی Catch دستور آپدیت بنویس که هرجا کلید اصلیش برابر با متغیر key بود آپدیت کنه.

mohsen_f_b
سه شنبه 07 شهریور 1391, 13:32 عصر
سلام

خوب چرا همه این کارهارا با خوده SQL انجان نمیدید؟ شما 2 شرط خاص دارید یا نه اینکه هر شرطی که می خواد باشه، همه اینهارا در SQL کنترل نمایید خیلی بهتر.
1- سرعت بالاتر
2-ریسک پذیری کمتر
3-کمتر اتصال به سرور پبدا می کنید.
4-دقت عمل آنجا بالاتر

شما در خوده SQL با یک دستور Select ساده می توانید هر تعداد رکورد با شرط خاص خود را Update نمایید. حالا می خواهد یک فیلد باشد یا 1000000 تا مهم نیست!
هرکاری رو داخله خوده .نت انجام ندهید.

موفق باشید

mehran63
سه شنبه 07 شهریور 1391, 17:26 عصر
سلام

خوب چرا همه این کارهارا با خوده SQL انجان نمیدید؟ شما 2 شرط خاص دارید یا نه اینکه هر شرطی که می خواد باشه، همه اینهارا در SQL کنترل نمایید خیلی بهتر.
شما در خوده SQL با یک دستور Select ساده می توانید هر تعداد رکورد با شرط خاص خود را Update نمایید. حالا می خواهد یک فیلد باشد یا 1000000 تا مهم نیست!
هرکاری رو داخله خوده .نت انجام ندهید.

موفق باشید

سلام
ممنون از راهنمایی
اگه بگید با این توضیحاتی که دادم چه جوری میشه، ممنون میشم
اگه با نمونه کد بگید که خیلی عالی تر است