PDA

نسخه کامل مشاهده نسخه کامل : کد ذخیره تغییرات DataGridView رو می خواستم(به زبان سی شارپ)



mohammad2006
20-07-2009, 12:29
سلام
برای ذخیره تغییرات DataGridView که ستون هایش از چند table دیتابیس گرفته شده چه کدی باید بنویسم؟
ممنون

mahdi7s
20-07-2009, 16:20
سلام

شما برای اینکه بتونین تغیرات رو ذخیره کنید باید شی DataSet که دارای جدولهای مورد استفاده هست رو بوسیله ی DataAdapter بروز کنی.


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

البته اگه فقط به فیلدهای از بین چند جدول نیاز دارید بهتر است با استفاده JOIN دستور فرمانی رو بسازید که فقط آن فیلدها رو بدست بیاورد که دیگه در اینجا نیازی به DataSet نیست و می تونید از یه DataTable استفاده کنید. ولی نهایتا کد بروز کردن بانک همون کد بالایی هست.


مثال بدست آوردن فیلدهایی از دو جدول Customer و Address :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

============================================

توجه داشنه باشید که برای بروز کردن یک DataSet یا DataTable یا ... باید فرمان درستی رو به DataAdapter بدید که اینکار می تونه فقط یکبار برای همیشه در طول یک برنامه به صورت زیر و به این راحتی انجام بگیره.


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

در ضمن da شی DataAdapter و ds شی DataSet می باشد.


موفق باشید.

mohammad2006
20-07-2009, 20:31
ممنون
من می خوام تغییرات دیتا ست که بوسیله DataGridView بوجود آمده رو در پایگاه داده اعمال کنم .(پایگاه داده رو آپدیت کنم)
دستور اول اگه اشتباه نکنم دیتا ست رو اپدیت می کنه.
SqlCommandBuilder یه جا خوندم برای اعمال تغییرات در پایگاه داده در صورتی به کار میره که اطلاعات DataGridView از یک جدول بدست آمده باشه.

mahdi7s
20-07-2009, 21:03
ممنون
من می خوام تغییرات دیتا ست که بوسیله DataGridView بوجود آمده رو در پایگاه داده اعمال کنم .(پایگاه داده رو آپدیت کنم)
دستور اول اگه اشتباه نکنم دیتا ست رو اپدیت می کنه.
SqlCommandBuilder یه جا خوندم برای اعمال تغییرات در پایگاه داده در صورتی به کار میره که اطلاعات DataGridView از یک جدول بدست آمده باشه.


دوست عزیز تو سی شارپ همه چی مرجع هست منم برای بار اول که از سی پلاس وارد شارپ شدم کمی گیج بودم.

شما کارهایی که گفتم رو انجام بدید اگر به مشکلی برخوردید و یا بعدش سوالی پیش اومد در خدمتم.

موفق باشید

mohammad2006
20-07-2009, 22:38
برای آپدیت دیتا بیس که sql هستش از همین شی SqlCommandBuilder که نوشتی استفاده کردم .ولی برای DataGaridView کار میکنه که جدول دیتاست اون از یک جدول دیتابیس گرفته شده باشه.من امتحان کردم اینجوری بود.
کدها رو اینجا نوشتم.


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

mahdi7s
21-07-2009, 01:26
سلام

راستش من زیاد از حرف های شما چیزی سر در نمیارم!!!

ولی چیزی که فهمیدم جواب میدم!!!


1)شما نمی توانید فیلدهایی رو که هر کدوم در یه جدول قرار دارند و می خواین این فیلده با هم تشکیل یه جدول خاص رو بدن رو در همون جدولهای اصلی بروز یا ذخیره کنید. چون فیلدهای دیگه خالی میمونند و خطا...

بنابراین باید

2)اولا یه بانک جدید که حاوی یک جدول نگهدارنده ی اطلاعات فیلدهای جمع اوری شده هست رو ایجاد کنید.
ثانیا در برنامه اصلی پس از خواندن فیلدهای مورد نظر از جداول مختلف و همچنین خواندن جدول ایجاد شده توسط خوتان که قرار است اطلاعات این فیلدها رو نگهداری کند از بانک.و نهایتا قرار دادن فیلدهای جدید یا به روز شده در جدول جدید ایجاد شده توسط خودتان و بروز کردن آن.



ولی من هنوز نفهمیدم چرا می خواهید اطلاعات رو از چند جدول دیگه بخوانید و آن ها رو در یک جدول دیگه با تغییراتی ذخییره کنید؟

چرا کلا از یک جدول استفاده نمی کنید؟


در ضمن به خط دوم کدی که نوشتین نیازی نیست!!!


شب خوش.

mohammad2006
21-07-2009, 07:51
مرسی مهدی جان.ممنون از راهنمایی
مثلا دو تا جدول در دیتابیس دارم که اون ها رو با join و دیگر دستورات در یک datagridview نمایش میدم ولی می خوام کاربر اون فیلدهایی رو بتونه تغییر بده که از جدول اول هستن و بعد تغییرات رو در جدول اول در دیتابیس ذخیره کنم.فکر می کنم اینجوری زیاد جالب در نیاد.!!!ولی نمی دونم امکانش هست یا نه.
پس امکان ویرایش رو در DataGridView غیر فعال کنم بهتره.از طریق کد چه جوری می تونم غیرفعالش کنم؟
مهدی جان در مورد کتاب گفته بودی من جزئیات دستورات رو با توضیحات ، کمتر توی کتاب ها دیدم.اگه کتاب مدنظر داری ممنون میشم معرفی کنی.

mahdi7s
21-07-2009, 10:24
سلام


مثلا دو تا جدول در دیتابیس دارم که اون ها رو با join و دیگر دستورات در یک datagridview نمایش میدم ولی می خوام کاربر اون فیلدهایی رو بتونه تغییر بده که از جدول اول هستن و بعد تغییرات رو در جدول اول در دیتابیس ذخیره کنم

جدولی که از join کردن چند جدول دیگه بوجود بیاد رو شما نمی تونید بروز و ذخیره کنید چون بانک مشخصی نداره.ولی می تونید یک بانک ایجاد و جدول بدست امده رو در اون ذخیره کنید.

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


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

البته توجه کنید که باید از تمام فیلدهای جدول اول استفاده کنید.دلیلش در پست قبل گفتم.
برای بروز کردن هم که فقط همین جدول باید بروز بشه.



.از طریق کد چه جوری می تونم غیرفعالش کنم؟


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


مهدی جان در مورد کتاب گفته بودی من جزئیات دستورات رو با توضیحات ، کمتر توی کتاب ها دیدم.اگه کتاب مدنظر داری ممنون میشم معرفی کنی.
معمولا تمام کتاب هایی که تا الان خوندم چند فصل اول رو به سینتکس اختصاص دادن!

چیزی که در این زمینه زیاد هست کتاب!!
اگر کمی در نت سرچی کنید به راحتی می تونید کتاب موردعلاقتونو پیدا کنید.

البته در فروم سی داش مهران هم تاپیک عظیمی!!! در این مورد زدن.


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

موفق باشید.

mahdi7610
21-07-2009, 10:44
پس امکان ویرایش رو در DataGridView غیر فعال کنم بهتره.از طریق کد چه جوری می تونم غیرفعالش کنم؟


اینا توی فرم لود بنویس


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

موفق باشی

mohammad2006
22-07-2009, 22:53
مرسی مهدی جان
یه سوال در مورد dataview ممنون میشم راهنمایی کنید.
در دستور objdataview.rowfilter رشته رو باید بین " " و نام ستون هم تنها آورده میشه.حالا من می خوام یک ستون رو با خاصیت یک کنترل مثلا combobox یا textbox.text مقایسه کنم.اون خاصیت رو به چه شکل داخل rowfilter بنویسم؟

mahdi7s
23-07-2009, 09:51
سلام


در دستور objdataview.rowfilter رشته رو باید بین " " و نام ستون هم تنها آورده میشه.حالا من می خوام یک ستون رو با خاصیت یک کنترل مثلا combobox یا textbox.text مقایسه کنم.اون خاصیت رو به چه شکل داخل rowfilter بنویسم؟

باور کنید یه چند باری خوندم تا فکر کنم منظورتان را فهمیدم!!!

فکر کنم همین دیروز در یکی دیگه از تاپیک ها این رو گفتم!!!



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

که بجای YourValue باید مقداری که می خواین باهاش مقایسه کنیدو قرار بدید.

موفق باشید.

nedahabibi
12-09-2009, 14:55
سلام.من میخوام روی ستونها فیلتر بذارم. مثلا سطری که مقدار ستون hasserror آن مخالف 0 باشه در grid نمایش داده نشه!
کسی می تونه کمکم کنه؟!