PDA

View Full Version : سوال: چند اشکال در C#‎



ostad_e
پنج شنبه 28 مرداد 1389, 11:05 صبح
سلام به دوستان عزیز, من در پروژه ام چند اشکال دارم:
1) چطور یک ComboBox را در DataGridView یا به عبارتی در دیتا بیس اصلی ذخیره کنم , ComboBox فیلد نام جدول در دیتا بیس را نشان میدهد و باید فقط کد آن در جدول دیگر ذخیره شود. :متفکر:
2) نحوه ی محدود کردن یک ComboBox به وسیله ی ComboBox دیگر مثلا زمانیکه گروه اصلی را مشخص کردیم زیر گروه اصلی فقط زیر گروه های آن را نمایش بدهد نه تمام زیر گروه ها! :عصبانی++:
3) چگونه قابلیت Edit و Delete را در DataGridView داشته باشم که با زدن دکمه ی btmdelet یا btmedit این کار انجام بشه!! :گیج:
4) زمانیکه بخواهیم اطلاعاتی که در یک صفحه است را در 2 یا بیشتر جدول دیتا بیس ذخیره کنم چکار کنم؟ :اشتباه:
کمک آخه تا دفاع از پروژم فقط 10 روز مونده :گریه:

rezamansori
پنج شنبه 28 مرداد 1389, 11:23 صبح
در مورد سوال اول شما می تونم بگم که شما می توانید از خاصیت selectedindex یا selecteditem استفاده کنید.
شما می تونید با دستور اس کیو ال این کار را بکنی. مثلا:


Select * From Users
یا دقیقتر بگم:
باید اول آیتم انتخاب شده رو تو یه متغیر بذاری:


string str=comboBox1.SelectedItem.Tostring()

سپس ازش در دستور استفاده کنی:


"Select * From" + str

شاید کدا اشتباه داشته باشن اما تو همین مایه هاست.
امید وارم فهمیده باشی.
در مورد سوال بعدی شما می خواهید عملیات ویرایش در خود دیتا گرید باشد یا چیز دیگر( مثلا چند تا تکست باکس)؟
دیتا گرید خاصیتی دارد به نام allowusertoEdit و allowusertodelete(یا تو همین مایه ها) که این امکان رو به
کاربر میده .
می تونی بعد از ذخیره سازی در جدول اول اونارو در جدول دوم ذخیره کنی(همون جوری که تو جدول الو ذخیره کردی).
اگه سوالی داری بپرس

ostad_e
پنج شنبه 28 مرداد 1389, 18:47 عصر
سلام ممنون که جواب دادین البته هنوز کد اولی که گفتین رو امتحان نکردم
برای GridView میخوام وقتی روی رکورد کلیک کردم اطلاعات روی textBox قرار بگیره و بعد از تغییر آن وقتی روی دکمه ی Edit زدم تغییرات اعمال بشه!!!!

ایمان مدائنی
پنج شنبه 28 مرداد 1389, 22:39 عصر
شما ميتوني از selectedrow استفاده كنيد و بعد از تصحيح اون را در بانك ذخيره كني و داتا گريد ويو رو رفرش كني !
موفق باشي

ostad_e
شنبه 30 مرداد 1389, 10:52 صبح
باز هم سلام، من یک فایل که شامل 2 صفحه از طراحی ام است رو به همراه جدولهام قرار دادم میشه روی اون بگید که چطوری و کجا باید کدها را وارد کنم؟ طراحی من با C# 2008 هستش!!!

amirh_karimifar
شنبه 30 مرداد 1389, 10:58 صبح
سلام ممنون که جواب دادین البته هنوز کد اولی که گفتین رو امتحان نکردم
برای GridView میخوام وقتی روی رکورد کلیک کردم اطلاعات روی textBox قرار بگیره و بعد از تغییر آن وقتی روی دکمه ی Edit زدم تغییرات اعمال بشه!!!!


روی رویداد datagridcontexmouseclick این کد رو وارد کن .


textbox1.text = selectedrow.cells[x].value.tostring()
x اندیس اون ستونیه که میخوای محتویاتش بره داخل textbox1

amirh_karimifar
شنبه 30 مرداد 1389, 11:09 صبح
برای سوال دومت .

فرض کن دو تا combobox داری . یکی برای بخش های اصلیت که اسمشو گذاشتی comSec و بقیه برای بخش های فرعیت comSub .

خب توی رویداد selectedindexchange برای comsec این کدو وارد کن .


sqlquerystring = " select * from where sec = " + ComSec.selectedIndex
sqlQury.executenonqury();
dataset.clear();
sqlQuery.fill(dataset)
dataset.Table1.Sub.CopyTo(ComSub.Items)
البته کدو همینجوری نوشتم که راهو بهت نشون بدم . خودت باید تکمیل کنیش .

ostad_e
شنبه 30 مرداد 1389, 12:27 عصر
روی رویداد datagridcontexmouseclick این کد رو وارد کن .


textbox1.text = selectedrow.cells[x].value.tostring()
x اندیس اون ستونیه که میخوای محتویاتش بره داخل textbox1


شرمنده اما من این رویدادی که گفتین رو نتونستم پیدا کنم!!! این رویداد کجاست؟ رویداد مربوط به خود DataGrid هستش یا...!

ostad_e
شنبه 30 مرداد 1389, 15:54 عصر
شما ميتوني از selectedrow استفاده كنيد و بعد از تصحيح اون را در بانك ذخيره كني و داتا گريد ويو رو رفرش كني !
موفق باشي


باز هم سلام، من یک فایل که شامل 2 صفحه است رو به همراه جدولهام قرار دادم میشه روی اون بگید که چطوری و کجا باید کدها را وارد کنم؟ طراحی من با C#‎‎ 2008 هستش!!!

amirh_karimifar
شنبه 30 مرداد 1389, 17:02 عصر
بله این جز رویدادهای datagride مطمئن باش هست . context mouse click

حجتی نیا
شنبه 30 مرداد 1389, 17:36 عصر
ج 1 ) اگه تعداد جدولا زیاد نیست میتونی با دستور switch یا ifتودرتو چک کنی اگه فلان جدول انتخاب شد،فلان عدد در دیتابیس ذخیره بشه ..
ج 2 ) نمونه برنامه ... http://www.4shared.com/file/2bAlIdJZ...lication2.html
ج 3 ) دیتاگرید بایند هست ؟؟ اطلاعات داخل گرید ویرایش بشه یا در تکس باکس؟؟
ج 4 ) در متد مربوطه برای ذخیره اطلاعات در هریک از جداول، یه کوئری بنویسین ..

pedramfj
شنبه 30 مرداد 1389, 18:40 عصر
در مورد سوال سوم :بجای اینکه با کلیک بر روی DataGridView بتوانی داده ها را ویرایش کنید. بهتر است بر اساس کد اصلی جدول موجود در بانک یک جستجو انجام داده و سپس داده ها را در چندین text نمایش داده و ویرایش کرده و سپس ذخیره کنید. و بطور همزمان در DataGridView نمایش داده شود.
حذف داده هم به همین شکل است.
اگر مایل به انجام این کار هستید من درخدمتم.

ostad_e
یک شنبه 31 مرداد 1389, 12:37 عصر
شما ميتوني از selectedrow استفاده كنيد و بعد از تصحيح اون را در بانك ذخيره كني و داتا گريد ويو رو رفرش كني !
موفق باشي


از راهنماییتون ممنون ، تونستم وقتی روی DataGrid کلیک میکنم اطلاعات روی TextBoxها ظاهر بشه و تغییرشون بدم ، اما ویرایش نمیشه! و وقتی که دکمه ی ذخیره هم میزنم یک رکورد جدید ذخیره میکنه :(

ostad_e
یک شنبه 31 مرداد 1389, 12:43 عصر
در مورد سوال سوم :بجای اینکه با کلیک بر روی DataGridView بتوانی داده ها را ویرایش کنید. بهتر است بر اساس کد اصلی جدول موجود در بانک یک جستجو انجام داده و سپس داده ها را در چندین text نمایش داده و ویرایش کرده و سپس ذخیره کنید. و بطور همزمان در DataGridView نمایش داده شود.
حذف داده هم به همین شکل است.
اگر مایل به انجام این کار هستید من درخدمتم.

منظورتون اینه که یه دکمه ی Select داشته باشم و وقتی روش کلیک کردم یه صفحه ی دیگه باز بشه و تغییرات رو روی اون انجام بدم؟ و بعدا اونو ذخیره کنم؟
روش اینکه چطوری به TextBox ها ارجاع بدم رو فهمیدم و میتونم الان ارجاع بدم ، یعنی اگه منظور شما رو درست فهمیده باشم قسمت اول کارو انجام دادم ، الان مشکلم اینه که این تغییرات بجای رکورد فعلی ذخیره نمیشه و یه رکورد جدید ایجاد میکنه!

ostad_e
یک شنبه 31 مرداد 1389, 12:55 عصر
بله این جز رویدادهای datagride مطمئن باش هست . context mouse click


ممنون، این کارو تونستم انجام بدم ، یعنی داده ها رو روی TextBoxهام انتقال دادم اما بعد از اینکه تغییرات رو اعمال کردم بجای اینکه این تغییرات جایگزین بشه یه رکورد جدید میسازه!
--------------------

ج 1 ) اگه تعداد جدولا زیاد نیست میتونی با دستور switch یا ifتودرتو چک کنی اگه فلان جدول انتخاب شد،فلان عدد در دیتابیس ذخیره بشه ..
ج 2 ) نمونه برنامه ... http://www.4shared.com/file/2bAlIdJZ...lication2.html
ج 3 ) دیتاگرید بایند هست ؟؟ اطلاعات داخل گرید ویرایش بشه یا در تکس باکس؟؟
ج 4 ) در متد مربوطه برای ذخیره اطلاعات در هریک از جداول، یه کوئری بنویسین ..

ممنون از لطفتون، اما آدرسی که دادید وجود نداشت! و الان بزرگترین مشکل من اینه که هنوز نمیتونم ComboBox هام رو ذخیره کنم! :(

cheshm6k
دوشنبه 01 شهریور 1389, 02:11 صبح
ممنون، این کارو تونستم انجام بدم ، یعنی داده ها رو روی TextBoxهام انتقال دادم اما بعد از اینکه تغییرات رو اعمال کردم بجای اینکه این تغییرات جایگزین بشه یه رکورد جدید میسازه!
--------------------


ممنون از لطفتون، اما آدرسی که دادید وجود نداشت! و الان بزرگترین مشکل من اینه که هنوز نمیتونم ComboBox هام رو ذخیره کنم! :(


با سلام

اینکه یه رکورد جدید ایجاد میکنه حتما به خاطر اینه که شما Insert می کنی نه update.

حجتی نیا
دوشنبه 01 شهریور 1389, 10:00 صبح
ممنون از لطفتون، اما آدرسی که دادید وجود نداشت! و الان بزرگترین مشکل من اینه که هنوز نمیتونم ComboBox هام رو ذخیره کنم! :(
http://www.4shared.com/file/2bAlIdJZ/_2__WindowsFormsApplication2.html

ostad_e
چهارشنبه 03 شهریور 1389, 15:55 عصر
تشکر از تمامی دوستان عزیز که توی این چند روز من رو با راهنماییهاشون همراهی کردند، تمام مشکلاتم حل شد، موفق باشید.:لبخندساده: