PDA

View Full Version : سوال: ثبت رکورد در گرید تا حد معمول و مشخص



neda_dela
چهارشنبه 15 اردیبهشت 1389, 10:41 صبح
سلام دوستان:خجالت:
من یه گرید دارم که توش اطلاعات اشخاصی که در یه ترم خاص ثبت نام کردن رو نشون میده حالا می خام این ثبت نام تا سقف 20 نفر باشه یعنی اگه خاستم 21 امین نفر رو ثبت نام کنم سیستم خطا بده یا پیغام بده
در ضمن در مورد هر شخص که ثبت نام می کنه در هر ترم چند چیز باید درنظر گرفته بشه:
نام مربی - نام ترم (تابستان پاییز زمستان) - سال و سطحی که شخص میخاد ثبت نام کنه
نمی دونم واضح بود یا نه؟:خجالت:
مثلا فرض کنید که من شخص 21 هستم که می خام در ترم تابستان سال 1389 و در کلاس خانم x و در سطح مقدماتی ثبت نام کنم حالا باید سیستم اخطار بده که 20 نفر ثبت نام کردن و دیگه راه نداره:قلب:
مرسی

اَرژنگ
چهارشنبه 15 اردیبهشت 1389, 10:47 صبح
سلام دوستان:خجالت:
من یه گرید دارم که توش اطلاعات اشخاصی که در یه ترم خاص ثبت نام کردن رو نشون میده حالا می خام این ثبت نام تا سقف 20 نفر باشه یعنی اگه خاستم 21 امین نفر رو ثبت نام کنم سیستم خطا بده یا پیغام بده
در ضمن در مورد هر شخص که ثبت نام می کنه در هر ترم چند چیز باید درنظر گرفته بشه:
نام مربی - نام ترم (تابستان پاییز زمستان) - سال و سطحی که شخص میخاد ثبت نام کنه
نمی دونم واضح بود یا نه؟:خجالت:
مثلا فرض کنید که من شخص 21 هستم که می خام در ترم تابستان سال 1389 و در کلاس خانم x و در سطح مقدماتی ثبت نام کنم حالا باید سیستم اخطار بده که 20 نفر ثبت نام کردن و دیگه راه نداره:قلب:
مرسی

۱.اصل کاری گرید ویو نیست، گرید ویو فقط برایه نمایش داتاسورس پشته صحنه است، به جایه اینکه به گرید ویو تمرکز کنید به اینکه داتاسورس چی هست دقت کنید اگر از بایندینگ سورس استفاده کنید ایونتهایه مختلف دارد که یکیش که به این کار میاد :
BindingSource.AddingNew
http://msdn.microsoft.com/en-us/library/system.windows.forms.bindingsource.addingnew(v=VS. 100).aspx
میشه شرائط را در این ایونت چک کرد و اضافه شدن رکورد جدید را کنسل کرد.
استفاده از گریدویو برایه اعمال منطقی به اسپاگتی کد کردن میانجامه.

neda_dela
چهارشنبه 15 اردیبهشت 1389, 22:30 عصر
۱.اصل کاری گرید ویو نیست، گرید ویو فقط برایه نمایش داتاسورس پشته صحنه است، به جایه اینکه به گرید ویو تمرکز کنید به اینکه داتاسورس چی هست دقت کنید اگر از بایندینگ سورس استفاده کنید ایونتهایه مختلف دارد که یکیش که به این کار میاد :
BindingSource.AddingNew
http://msdn.microsoft.com/en-us/library/system.windows.forms.bindingsource.addingnew(v=VS. 100).aspx
میشه شرائط را در این ایونت چک کرد و اضافه شدن رکورد جدید را کنسل کرد.
استفاده از گریدویو برایه اعمال منطقی به اسپاگتی کد کردن میانجامه.
مرسی منم میدونم کار گرید ویو نیست فقط گفتم که دوستان بدونن من توی فرمم یه گرید دارم شاید لزومی هم نداشته
من یه تیبل دارم که اطلاعات همه ترم ها و همه سالها و سطح ها توی همون ثبت میشه
حالا به نظر خودم باید بیاد اون چند تا فیلد که نام بردم (ترم سال سطح نام مربی) رو چک کنه و تعداد رو توی یه کانتر بشمره و وقتی این کانتر به 21 رسید سیستم پیغام بده
حالا همین رو نمی دونم باید چکار کنم؟

mmd2009
چهارشنبه 15 اردیبهشت 1389, 22:38 عصر
اگه می خوای از گرید ویو استفاده کنی همون بهتره از کانتر استفاده کنی و اول بیایی شرایط کانتر رو در نظر بگیری و بگی اگر کانتر برابر بود با 20 پیغام خطا صادر بشه

mmd2009
چهارشنبه 15 اردیبهشت 1389, 22:56 عصر
البته منظورم از حرف بالا یه چیز دیگه بود

العا یک مثال زدم براتون که اگر نفر ششم رو بخواهید ثبت کنید به شما ارور میگیره البته خودتون بردی بانک رو اول نگاه بکنید بعدش بیایید اطلاعات رو بریزید داخلش

و مطمئن باشید بیشتر از 5 تا نمی تونید رکورد بهش اضافه کنید

و نیازی به گرید ویو هم ندارید

iman_me
چهارشنبه 15 اردیبهشت 1389, 22:59 عصر
این رو که خودش هم گفته کدش رو میخواد
باید وقتی form_load میشه گرید ویو پر بشه و زیرش بنوسی


If DataGridView1.RowCount = 21 Then
MsgBox("")
End If

mmd2009
چهارشنبه 15 اردیبهشت 1389, 23:06 عصر
البته به نظر من نیازی به گرید ویو نداره دیگه

و اگر هم میخواد گرید ویو بذاری که از اموزش من باز هم استفاده بکنه خیلی بهتر هستش و دیگه نیازی نداره هر بار وقتی فرم باز شد بهش پیغام خطا و کافیه تو یه برچسب زیر گرید ویو بهش بگه که تعداد شاگردان به میزان مورد نظر رسیده است.

کلا کارهای زیادی میتونی بکنی

neda_dela
جمعه 17 اردیبهشت 1389, 22:24 عصر
این رو که خودش هم گفته کدش رو میخواد
باید وقتی form_load میشه گرید ویو پر بشه و زیرش بنوسی


If DataGridView1.RowCount = 21 Then
MsgBox("")
End If

مرسی
من همین الان توی تیبلم نزدیک به 500 تا رکورد دارم
منظورم این بود که وقتی مثلا تعداد رکوردهای ثبت نامی یه ترم و یه سال خاصی از 20 تا بیشتر شد پیغام بده
من الان توی این تیبل رکوردهای سال 87 و 88 و 89 رو دارم میخام با شرایط خاص این پیغام رو بده
مثلا وقتی که تعداد رکوردهای ترم تابستان سال 1389 در سطح مقدماتی به 20 تا رسید دیگه اجازه ثبت نام نده:قلب:

iman_me
شنبه 18 اردیبهشت 1389, 10:19 صبح
خوب واسه این کار باید از کد select استفاده کنی و مابین دو تاریخ رو جستجو کنی و اونها رو داخل دیتا گرید بریزی بعد کد منو اجرا کنی

neda_dela
شنبه 18 اردیبهشت 1389, 23:41 عصر
البته منظورم از حرف بالا یه چیز دیگه بود

العا یک مثال زدم براتون که اگر نفر ششم رو بخواهید ثبت کنید به شما ارور میگیره البته خودتون بردی بانک رو اول نگاه بکنید بعدش بیایید اطلاعات رو بریزید داخلش

و مطمئن باشید بیشتر از 5 تا نمی تونید رکورد بهش اضافه کنید

و نیازی به گرید ویو هم ندارید
نمونه برنامه تون رو دیدم ممنون
اول یه سوال : تابع parse چکار می کنه؟
ولی این هم که بررسی هایی رو که من می خام انجام نمیده که :اشتباه:
اون کانتر رو چطوری استفاده کنم؟:قلب:

neda_dela
یک شنبه 19 اردیبهشت 1389, 22:37 عصر
یکی منو بیشتر بیشتر راهنمایی کنه:افسرده:

iman_me
یک شنبه 19 اردیبهشت 1389, 23:07 عصر
من هم برنامه ایشون رو دیدم خوب :
Parse برای تبدیل مثلا ایشون نوشتن int.Parse یعنی رشته مون به مقدار عددی تبدیل بشه
اما در مورد کانتر باید بگم که کد ایشون کل دیتابیس رو جستجو میکنه و اگه مقدار کل دیتابیس بیشتر از 5بود
خطا میده با یکم تغییرات درست میشه باید بجای :cmd.CommandText = "select count(*) from tb";
بین دو تاریخ که میخواهی رو جستجو کنی