PDA

View Full Version : سوال: ایجاد فضا برای متغیر i در حلقه for بدون وارد کردن ایجاد کردن table database



Bahar.Sh
جمعه 20 مرداد 1391, 20:56 عصر
سلام،
می خواستم بدونم راهی وجود داره که دو متغیر i و j برای دو حلقه ی for ایجاد کنم بدون اینکه یک table جدید برای آنها در database درست کنم؟

یکبار با For امتحان کردم و نشد، و اومدم if رو امتحان کردم و یک datatable و tableadapter ودو query با عنوان update درست کردم


91059

که هر بار که i و j تغییر می کنن، این هم ذخیره کنه...


91060

ولی به database وصلش نکردم(آیا می شه dataset به صورت موقت i رو ذخیره کنه؟)
و وقتی در قسمت load فرم خواستم به i و j مقدار اولیه 0 رو بدهم و آن را اجرا کردم، چنین خطایی می دهد:


91058

این کارها رو برای ایجاد کد دانش آموزی انجام دادم.(همونطور که در کدها می بینید چهار رقم سال و بعد عدد کلاس و بعد عدد دانش آموز را به عنوان کد دانش آموزی نشان می دهد)

tooraj_azizi_1035
جمعه 20 مرداد 1391, 21:06 عصر
یکبار فقط مسئله رو واضح توضیح بده که چه مشکلی داری تا راه حل رو دوستان بگن.

Bahar.Sh
جمعه 20 مرداد 1391, 21:19 عصر
می خوام یک کد دانش آموزی ایجاد کنم که ارقام اولش سال ثبت نام، دو رقم بعدی عدد کلاس(که 9 تا کلاس در نظر گرفتم) و دو رقم انتهایی عدد دانش آموز(که ظرفیت رو 30 نفر درنظر گرفتم) باشه و اون رو در یک textbox بریزم...
و همونطور که در کدها می بینید، به دو حلقه ی for یا if نیاز بود که هر بار که دانش آموزی ثبت نام شد، به متغیر i یک عدد اضافه شود و به همین ترتیب ادامه پیدا کند تا ظرفیت پر شود.
ولی مشکل اینجاست که بعد ثبت نام هر دانش آموز، عدد i باید یکجا ذخیره شود تا در ثبت نام بعدی استفاده شود، و من می خواستم بدون ایجاد کردن یک cloumn جدید(و table جدید) بتونم این i رو در خود برنامه یا dataset یا هرجا دیگر ذخیره کنم. آیا این کار ممکنه؟
چون اگر ممکن نباشه برای هر حلقه ی for که ایجاد می کنم باید یک column و table جدید در database ایجاد کنم و فک می کنم راهی آسانتر برای ذخیره ی موقتی متغیر i باشه... هست؟

tooraj_azizi_1035
جمعه 20 مرداد 1391, 21:30 عصر
شما هر بار که کاربر یک رکورد جدید اضافه می کنه باید خودت کد دانش آموزی رو Generate کنی. این کد باید در هنگامی که کاربر دکمه ایجاد رکورد رو میزنه نوشته بشه:

GridView1.CurrentRow.Cells["StID"].Value= سال ثبت نام + عدد کلاس + تعداد رکوردهای ثبت شده برای این کلاس خاص.

منظور من این است که شما سال ثبت نام رو داری، عدد کلاس رو هم احتمالاً کاربر وارد می کنه. باید با تعداد دانش آموزان یک کلاس خاص رو بدست بیاری که این کار رو میشه به راحتی با متد Count بدست آورد:

مثلاً

AllStrudents.Rows.Where(r => r.Class=5).Count()

البته همه اینها شبه کد هست امیدوارم منظورم رو فهمیده باشید. نیازی به حلقه for و ثبت i و j در دیتابیس نیست.

Bahar.Sh
جمعه 20 مرداد 1391, 21:53 عصر
بله گرفتم، چه جالب!!! خیلی ممنون

ali_habibi1384
جمعه 20 مرداد 1391, 23:53 عصر
چرا از فيلد مشتق استفاده نميكنيد؟توي سلكت SQL رو به شكل زير تغيير بديد و يه فيلد واسط بسازيد:


select * ,( SaleSabtenam+Kelas+Adad) as CodeDaneshAmoz from Table

barnamenevisforme
شنبه 21 مرداد 1391, 21:02 عصر
سلام

چرا از فيلد مشتق استفاده نميكنيد؟توي سلكت SQL رو به شكل زير تغيير بديد و يه فيلد واسط بسازيد
یه کم بیشتر تضیح میدید؟
ممنون