PDA

View Full Version : bind کردن همه فیلدهای جداول دیتابیس



resident
جمعه 05 بهمن 1386, 22:37 عصر
سلام.
من همه فیلدهای جدولم رو در دیتاگریدویو نمایش نمیدم. اما میخوام کاربر هر رکوردی رو که انتخاب کرد همه اطلاعاتش حتی اونهایی که در دیتاگریدویو نیومده به کنترلهای فرم bind بشه.
امکان این کار هست؟
متشکرم.

خانم گل
شنبه 06 بهمن 1386, 00:17 صبح
اگه درست منظورتو فهمیده باشم می خوای با انتخاب هر فیلد از datagrid اون اطلاعات هم توی کنترلها نشون داده بشه.از توی properties مربوط به کنترل مورد نظرت قسمت databindings رو expand کن ،خاصیت text رو که کلیک کنی لیست datasource هایی رو که به فرمت اضافه کردی بهت نشون میده. هر کدوم رو که خواستی باز می کنی و فیلد مورد نظرت رو به کنترل bind میکنی. خوب دیگه باید کارت راه بیفته البته اگه منظورتو درست فهمیده باشم!....:لبخندساده:

Mahdi.Kiani
شنبه 06 بهمن 1386, 00:20 صبح
بله
از همون DataSource ای که برای grid استفاده می کنید برای binding کنترل ها هم استفاده کنید... بقیه کار ها اتوماتیک خودش انجام میشه. یعنی با انختاب یک سطر از گرید داده های مناسب در کنترل های مناسب بایند شده نمایش داده خواهند شد
فقط دقت کنید که عمل binding کنترل ها را یک بار انجام دهید
یعنی زمانی کنترلی بایند شده، دیگه انون بایند نکنید که چک کردن این موضوع هم خیلی سادست

Mahdi.Kiani
شنبه 06 بهمن 1386, 00:24 صبح
اگه درست منظورتو فهمیده باشم می خوای با انتخاب هر فیلد از datagrid اون اطلاعات هم توی کنترلها نشون داده بشه.از توی properties مربوط به کنترل مورد نظرت قسمت databindings رو expand کن ،خاصیت text رو که کلیک کنی لیست datasource هایی رو که به فرمت اضافه کردی بهت نشون میده. هر کدوم رو که خواستی باز می کنی و فیلد مورد نظرت رو به کنترل bind میکنی. خوب دیگه باید کارت راه بیفته البته اگه منظورتو درست فهمیده باشم!....:لبخندساده:
این دومین باریست که این عمل با شما اتفاق میفته
یعنی پست در آن واحد اونم با یک کاربر!!!

resident
شنبه 06 بهمن 1386, 08:21 صبح
از هر دوی شما عزیزان ممنونم که وقت گذاشتید و جواب بنده رو دادید.
دراین زمینه 3 سوال برام پیش اومد:

من دیتاستم رو به صورت دستی ایجاد کردم . وقتی میخوام دیتاستم رو برای دیتا بایندینگ انتخاب کنم اون دیتاستی که به صورت دیتس ایجاد کردم وجود نداره ، من دوباره با ویزارد (همون قسمت) دیتاست ایجاد میکنم. چطور میتونم به همون دیتاستی که خودم ایجاد کردم دسترسی داشته باشم؟ فقط از طریق کدنویسی برای بایندینگ به اون دیتاست می تونم دسترسی داشته باشم؟
در این روشی که شما فرمودید به محض اینکه اطلاعات در دیتاگریدویو نمایش داده میشه عمل بایندینگ هم انجام میشه، چون در هر لحظه یک سطر انتخاب شده است. حالا اگه کاربر بخواد اطلاعات جدیدی رو در کنترلها پر کنه باید اطلاعات بایند شده رو پاک کنه و بعد اطلاعات جدید رو وارد کنه. این مشکل رو چه جور میشه حل کرد؟
عمل بایندینگ رو فقط برای فیلدهایی که در دیتاست موجوده میشه انجام داد، درسته؟ مثلا اگه جدول من 5 فیلد داشته باشه اما من 3 تای اونها رو در دیتاگریدویو نمایش بدم عمل بایندینگ رو برای همون 3 فیلد میتونم انجام بدم؟

Mahdi.Kiani
شنبه 06 بهمن 1386, 10:23 صبح
از هر دوی شما عزیزان ممنونم که وقت گذاشتید و جواب بنده رو دادید.
دراین زمینه 3 سوال برام پیش اومد:

من دیتاستم رو به صورت دستی ایجاد کردم . وقتی میخوام دیتاستم رو برای دیتا بایندینگ انتخاب کنم اون دیتاستی که به صورت دیتس ایجاد کردم وجود نداره ، من دوباره با ویزارد (همون قسمت) دیتاست ایجاد میکنم. چطور میتونم به همون دیتاستی که خودم ایجاد کردم دسترسی داشته باشم؟ فقط از طریق کدنویسی برای بایندینگ به اون دیتاست می تونم دسترسی داشته باشم؟
در این روشی که شما فرمودید به محض اینکه اطلاعات در دیتاگریدویو نمایش داده میشه عمل بایندینگ هم انجام میشه، چون در هر لحظه یک سطر انتخاب شده است. حالا اگه کاربر بخواد اطلاعات جدیدی رو در کنترلها پر کنه باید اطلاعات بایند شده رو پاک کنه و بعد اطلاعات جدید رو وارد کنه. این مشکل رو چه جور میشه حل کرد؟
عمل بایندینگ رو فقط برای فیلدهایی که در دیتاست موجوده میشه انجام داد، درسته؟ مثلا اگه جدول من 5 فیلد داشته باشه اما من 3 تای اونها رو در دیتاگریدویو نمایش بدم عمل بایندینگ رو برای همون 3 فیلد میتونم انجام بدم؟

1) برید سمت کد نویسی و از design خارج بشید .. دلایلش قبلا بحث شده
2) شما می تونید هر چند تا از field ها را که بخواین (نه الزاما همه) را می تونین به datgrid یا کنترل های دیگه (برای هر کنترل یک فیلد) بایند کنید
3) این را هم خودم اضافه می کنم که از این نمونه برنامه ها اینقدر کیلویی این طرف و آن طرف ریخته که اگه من جای شما بودم خودم را علاف این جور سوالات در اینجا نمی کردم. به این دلیل که با search می تونین خیلی زودتر (اقریبا با سرعت نور)و بهتر به جوابتون برسین