PDA

View Full Version : سوال: جدول (dataGridView) افقی چگونه؟



FVVSBN
چهارشنبه 07 مهر 1389, 22:55 عصر
سلام

من میخوام در برنامه ام برای نمایش یه جدول که دارای 1 سطر داده و 7 ستون میباشد از یک جدول استفاده کنم که header ها در سمت راست جدول باشند.

به زبان تصویر میخواهم مثل زیر عمل کنم: (تصویر اول چیزیه که میخوام، تصویر دوم چیزیه که الان هست)

http://www.barnamenevis.org/forum/attachment.php?attachmentid=57347&stc=1&d=1285789555

http://www.barnamenevis.org/forum/attachment.php?attachmentid=57348&stc=1&d=1285789555


با چند خط کد به راحتی میشه این کارو کرد. ولی مشکل اینه که من میخوام یکی از جداول دیتابیسم رو مستقیم از اینجا آپلود کنم. حالا اون کدی که من مینویسم و به اون روش افقی میکنم هدر ها(که البته میشن فیلد دیگه) ("شنبه" و ... هم قابل ویرایش حداقل در فرم خواهند بود)

ممنون میشم راهنماییم کنید.
-----------

سوال 2: (موضوغ فرعی)

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

در حال حاضر به صورت زیر استفاده میکنم که همه رو نشون میده:



dataGridView1.DataSource=objDataView;

mehdi.mousavi
پنج شنبه 08 مهر 1389, 18:14 عصر
سلام مشکل اینه که من میخوام یکی از جداول دیتابیسم رو مستقیم از اینجا Bind کنم. ممنون میشم راهنماییم کنید.

سلام.
بردن Row ها به ستونها و آوردن ستونها در Row ها در بانک رو بهش میگن Pivoting. برای اینکار، شما میتونید در SQL Server با استفاده از PIVOT (و عمل عکسش توسط UNPIVOT) (http://technet.microsoft.com/en-us/library/ms177410.aspx) به هدفتون برسید (از بقیه RDBMS ها اطلاعی ندارم). خوندن این مقاله (http://www.simple-talk.com/community/blogs/andras/archive/2007/09/14/37265.aspx) شروع خوبی برای استفاده از این قابلیت SQL Server هستش.


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

اگر منظورتون فیلتر کردن چند Row هست، میتونید با استفاده از RowFilter ردیفهای مورد نظر رو Filter کنید. اما اگر منظورتون واقعا فیلدهای موجود در یک DataView هستش، باید یک DataTable جدید با Schema ی مورد نظرتون بسازید و Row های دلخواه رو به DataTable جدید اضافه کنید. DataView فقط View ای روی داده های موجود (با Schema ی معلوم) هستش. با اینحال، DataGirdViewColumn یک Property داره به اسم Visible که بیانگر این هستش که آیا ستون مورد نظر نمایش داده بشه یا خیر. شما میتونید از این حقه نیز استفاده کنید (البته، اگر قصد ندارید ستونی رو نمایش بدید، اصلا نیازی به دریافت اطلاعات اون فیلد از بانک نباید داشته باشید).

موفق باشید.

FVVSBN
پنج شنبه 08 مهر 1389, 22:50 عصر
سلام.
بردن Row ها به ستونها و آوردن ستونها در Row ها در بانک رو بهش میگن Pivoting. برای اینکار، شما میتونید در SQL Server با استفاده از PIVOT (و عمل عکسش توسط UNPIVOT) (http://technet.microsoft.com/en-us/library/ms177410.aspx) به هدفتون برسید (از بقیه RDBMS ها اطلاعی ندارم). خوندن این مقاله (http://www.simple-talk.com/community/blogs/andras/archive/2007/09/14/37265.aspx) شروع خوبی برای استفاده از این قابلیت SQL Server هستش.



اگر منظورتون فیلتر کردن چند Row هست، میتونید با استفاده از RowFilter ردیفهای مورد نظر رو Filter کنید. اما اگر منظورتون واقعا فیلدهای موجود در یک DataView هستش، باید یک DataTable جدید با Schema ی مورد نظرتون بسازید و Row های دلخواه رو به DataTable جدید اضافه کنید. DataView فقط View ای روی داده های موجود (با Schema ی معلوم) هستش. با اینحال، DataGirdViewColumn یک Property داره به اسم Visible که بیانگر این هستش که آیا ستون مورد نظر نمایش داده بشه یا خیر. شما میتونید از این حقه نیز استفاده کنید (البته، اگر قصد ندارید ستونی رو نمایش بدید، اصلا نیازی به دریافت اطلاعات اون فیلد از بانک نباید داشته باشید).

موفق باشید.


ممنون از کمکتون.

تصمیم گرفتم با همون قطه کد توی خود برنامه جای سطر و ستون ها رو عوض کنم.

در مورد اینکه ستون های خاصی رو نشون بدم چون نیاز دارم الزاما از بانک به برنامه بیان، و چون باید با حرکت بین رکورد ها اون جدول برنامه مربوط به هر رکورد تغییر کنه، نمیخوام جدول مجازی بسازم، پس فکر کنم بهترین راه همون false کردن نمایش اونا هست (چون تعداد رکورد ها در این فرم کم هست (نهایتا 300 تا) از همین راه میشه استفاده کرد.) البته اگه میشد کلا datamember رو به فیلد های خاص نسبت داد خیلی بهتر بود.


بازم ممنون از کمکتون.