PDA

View Full Version : انتقال اطلاعات دیتاگرید به دیتاگرید دیگر



arash ahmadi
جمعه 02 شهریور 1386, 18:48 عصر
سلام.

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

از خاصیت selected هم استفاده کردم. اما فقط می توانم انتخاب یک یا چند سطر را تشخیص بدهم . اما نمی توانم اطلاعات ان سطر را در دیتاگرید دوم نمایش داده شود.

شما راه حلی به نظرتون می رسه؟

egoldashraf
جمعه 02 شهریور 1386, 20:45 عصر
میتونید از رویداد کلیک گرید ویو و SelectedRow استفاده کنید

PC2st
جمعه 02 شهریور 1386, 22:07 عصر
از خاصیت selected هم استفاده کردم. اما فقط می توانم انتخاب یک یا چند سطر را تشخیص بدهم . اما نمی توانم اطلاعات ان سطر را در دیتاگرید دوم نمایش داده شود.
باید یک دیتاتیبل یا یک دیتاست دیگه ایجاد کرده و هر سطری که انتخاب شد رو بهش اضافه کنید، البته آن دیتاست یا دیتاتیبل باید به دیتاگرید دوم، متصل شده باشند.

اسماعیلی
جمعه 02 شهریور 1386, 23:57 عصر
میخواهید هر دو دیتا گرید در یک صفحه باشند . میتوانید از یک گرید ویو و دیتالزویو استفاده کنید.بعد باید کدهای مورد نظر خود را در رویداد selected گریدویو بنویسید.

Amir Oveisi
شنبه 03 شهریور 1386, 00:19 صبح
یه table درست کن و سطرهای انتخاب شده رو بهش اضافه کن بعد Datasource دیتاگرید جدید رو این table بذار

arash ahmadi
شنبه 03 شهریور 1386, 10:24 صبح
باید یک دیتاتیبل یا یک دیتاست دیگه ایجاد کرده و هر سطری که انتخاب شد رو بهش اضافه کنید، البته آن دیتاست یا دیتاتیبل باید به دیتاگرید دوم، متصل شده باشند.

اگه ممکنه بیشتر توضیح بدهید. میشه کدهاتون را برایم بگذارید. من نمی دونم چه کدی رو برای اضافه کردن سطر انتخاب شده به دیتاگرید دوم بنویسم؟

arash ahmadi
شنبه 03 شهریور 1386, 10:25 صبح
میتونید از رویداد کلیک گرید ویو و SelectedRow استفاده کنید

اگه ممکنه بیشتر توضیح بدهید. میشه کدهاتون را برایم بگذارید. من نمی دونم چه کدی رو برای اضافه کردن سطر انتخاب شده به دیتاگرید دوم بنویسم؟

arash ahmadi
شنبه 03 شهریور 1386, 10:27 صبح
میخواهید هر دو دیتا گرید در یک صفحه باشند . میتوانید از یک گرید ویو و دیتالزویو استفاده کنید.بعد باید کدهای مورد نظر خود را در رویداد selected گریدویو بنویسید.

لطفا" بیشتر توضیح بدهید.

PC2st
شنبه 03 شهریور 1386, 16:54 عصر
اگه ممکنه بیشتر توضیح بدهید. میشه کدهاتون را برایم بگذارید. من نمی دونم چه کدی رو برای اضافه کردن سطر انتخاب شده به دیتاگرید دوم بنویسم؟
این کار رو به دو روش میشه انجام داد: 1. استفاده از منبع داده 2. استفاده از خود دیتاگرید.
توضیحاتی که نوشته بودم برای منبع داده بود.
برای نمایش اطلاعات از یک دیتاگرید استفاده کردید و میخواید با کلیک روی هر سطر از دیتاگرید، اون سطر به دیتاگرید دیگری اضافه بشه که این دیتاگرید (دیتاگرید دوم) میتونه به یک منبع داده مثل DataSet یا DataTable وصل شده باشه. مثلا دیتاگرید دوم را به dataSet1 وصل کردید، پس هر تغییری که در dataSet1 ایجاد کنید، اون تغییرات در دیتاگرید هم به نمایش در میاد.
در رویداد SelectionChanged از دیتاگرید اول، باید سطر رو به dataSet1 اضافه کنید تا در دیتاگرید دوم، به نمایش در بیاد. مثل زیر:


dataSet1.Tables["TableName"].Rows.Add((string)dataGridView1.CurrentRow.Cells["FirstName"].Value, (string)dataGridView1.CurrentRow.Cells["LastName"].Value);

TableName نام جدول است.
FirstName و LastName فیلدهایی هستند که بر اساس آنها میتوان یک رکورد را به dataSet1 اضافه کرد.
dataGridView1.CurrentRow هم سطری جاری است که توسط کاربر انتخاب شده.

arash ahmadi
شنبه 03 شهریور 1386, 19:10 عصر
این کار رو به دو روش میشه انجام داد: 1. استفاده از منبع داده 2. استفاده از خود دیتاگرید.
توضیحاتی که نوشته بودم برای منبع داده بود.
برای نمایش اطلاعات از یک دیتاگرید استفاده کردید و میخواید با کلیک روی هر سطر از دیتاگرید، اون سطر به دیتاگرید دیگری اضافه بشه که این دیتاگرید (دیتاگرید دوم) میتونه به یک منبع داده مثل DataSet یا DataTable وصل شده باشه. مثلا دیتاگرید دوم را به dataSet1 وصل کردید، پس هر تغییری که در dataSet1 ایجاد کنید، اون تغییرات در دیتاگرید هم به نمایش در میاد.
در رویداد SelectionChanged از دیتاگرید اول، باید سطر رو به dataSet1 اضافه کنید تا در دیتاگرید دوم، به نمایش در بیاد. مثل زیر:


dataSet1.Tables["TableName"].Rows.Add((string)dataGridView1.CurrentRow.Cells["FirstName"].Value, (string)dataGridView1.CurrentRow.Cells["LastName"].Value);

TableName نام جدول است.
FirstName و LastName فیلدهایی هستند که بر اساس آنها میتوان یک رکورد را به dataSet1 اضافه کرد.
dataGridView1.CurrentRow هم سطری جاری است که توسط کاربر انتخاب شده.

ممنون از راهنمایی های مفید شما

فقط اونجایی که از string استفاده کردین برای اینه که فیلد فرضی شما string بوده یا برای کست کردن(cast) استفاده شده است؟ یعنی اگه فیلد مثلا" float باشه در کد شما به جه صورتی میشه؟

PC2st
شنبه 03 شهریور 1386, 19:48 عصر
بصورت فرضی فیلد از نوع string بوده و برای اعداد اعشاری، علامتی لازم نیست. برای تاریخ و زمان هم باید در بین ' قرار بگیرند.

egoldashraf
شنبه 03 شهریور 1386, 19:56 عصر
این یه نمونه برنامه. البته اگه برداشتم از سوالتون درست بوده باشه