PDA

View Full Version : تغییر فرمت یک ستون دیتاگرید



saeedcd
دوشنبه 31 مرداد 1390, 03:36 صبح
سلام خدمت همه برنامه نویسان گرامی
من دوتا دیتاگرید دارم
میخواهم مقدار یک سلول از دیتاگرید اول رو که مثلا از نوع عددی یا هرچیزی دیگه ای باشه رو بریزم توی یک سلول دیتاگرید دومم که اونهم دقیقا معلوم نیست از چه نوعیه
وقتب هردوتا سلول از یه نوع باشن مثلا string مشکلی نیست و برنامه کامل کار میکنه اما وقتی از دونوع متفاوت باشن ارور میده
1- چطور میتونم فرمت سلول دیتاگریدم رو تغییر بدم؟

بخاطر کمکی که میکنید ممنون:بوس:

M.KH-SH
دوشنبه 31 مرداد 1390, 10:16 صبح
اگه از نوع integer به string می خوای تغیر بدی از کلمه کلیدی val استفاده کن و یا برعکس
مثلا فیلد مورد نظر خودتو بریز تو یک متغییر و متغییر رو با val تبدیل کن به string یا integer این روش رو می تونی انجام بدی.

saeedcd
دوشنبه 31 مرداد 1390, 18:22 عصر
بخاطر جوابت ممنون اما اگه بخواهم از val استفاده کنم مثلا مقدار "سعید" رو به عدد تبدیل کنم مقدار صفر رو برمیگردونه و منطقی هم هستش من میخواهم مقدار "سعید" تو یه خونه که ستونش عدده قرار بگیره به من ای خطا رو نشون میده

ahmadreza517
دوشنبه 31 مرداد 1390, 19:00 عصر
به نام تنها برنامه نویس هستی
سلام
دوست عزیز می تونی از



Cint(Value)

Cstr(value

Ctype(DataType,Value)







استفاده کنی .

M.KH-SH
دوشنبه 31 مرداد 1390, 19:41 عصر
میخوای استرینگ رو تو خونه اینتیجر قرار بدی؟
بهتر نیست که فرمت خونه هاتو تغییر بدی و همه رو varchar بگیری که راحت بشی؟

saeedcd
سه شنبه 01 شهریور 1390, 09:57 صبح
سلام بخاطر جوابها ممنون :تشویق:
من نمیخام فرمت یه مقدار دیتاگرید رو تغییر بدم
برنامه من دوتا فایل اکسل رو میگیره که نمیدونم دقیقا فرمتش چطوریه. اونها رو تو 2 تا دیتاگرید قرار میده. کاربر ستونها رو مشخص میکنه که درصورت مساوی بودن مقدار خونه اون ستونها، مقدار اون سلول رو تو خونه های ستونی که کاربر مشخص میکنه کپی میکنه
یعنی من نمیتونم فرمت یه مقدار رو تغییر بدم من باید فرمت یه ستون دیتاگرید رو تغییر بدم من نمیتونم از دیتابیس sql یا access استفاده کنم
من نمیتونم همه رو varchar بگیرم اما میتونم فرمت کل دیتاگرید رو varchatr کنم سوالم هم اینطوری بگم چطوری فرمت کل ستونهای دیتاگرید رو varchar کنم؟

saeedcd
سه شنبه 01 شهریور 1390, 15:23 عصر
فکر کنم با یه مثال نشون بدم شاید راحتتر متوجه بشین و بتونین کمکم کنین
DataGridview1.Item(1,1).Value="saeed"
datagridview2.item(1,1).value=123
datagridview1.item(1,1).value = datagridview2.item(1,1).value
خط آخر error میگیره

monirprogram
سه شنبه 01 شهریور 1390, 15:37 عصر
مسلم هست که شرط نمیتونه برقرار باشه ، اما شما میتونی قبل از این تساوی،اول چک کنی نوعشون برابر هست یا نه ،اگر از یک نوع بودن بعد این شرط چک بشه.

saeedcd
سه شنبه 01 شهریور 1390, 20:19 عصر
مسلم هست که شرط نمیتونه برقرار باشه ، اما شما میتونی قبل از این تساوی،اول چک کنی نوعشون برابر هست یا نه ،اگر از یک نوع بودن بعد این شرط چک بشه.
مرسی
حالا اگه فرمت دوتا ستون برابر نبود چیکار کنم؟

Behzad_MCP
چهارشنبه 02 شهریور 1390, 09:23 صبح
دوست عزیز از Generics میتونی استفاده کنی به طوری که DataType ستونتو در هنگام استفاده مشخص کنی ، یه سری به msdn بزن

Class Gen(Of T, U)
Public V1 As T
Public V2 As U
Public Sub New(ByVal _V1 As T, ByVal _V2 As U)
V1 = _V1
V2 = _V2
End Sub
End Class

saeedcd
جمعه 04 شهریور 1390, 20:09 عصر
دوست عزیز از Generics میتونی استفاده کنی به طوری که DataType ستونتو در هنگام استفاده مشخص کنی ، یه سری به msdn بزن

Class Gen(Of T, U)
Public V1 As T
Public V2 As U
Public Sub New(ByVal _V1 As T, ByVal _V2 As U)
V1 = _V1
V2 = _V2
End Sub
End Class



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

saeedcd
شنبه 05 شهریور 1390, 20:37 عصر
کسی نمیخاد جواب بده
یه راه حل دیگه هیچکس به ذهنش نمیرسه
نه؟

monirprogram
دوشنبه 07 شهریور 1390, 10:44 صبح
فکر کنم بهترین حالت اینه که تبدیل به رشته کنی. مثلا
if cstr(datagrid1.rows(rowindex).cells("colname").value)=cstr(datagrid2.rows(rowindex2).cells("colname2").valu)

saeedcd
دوشنبه 07 شهریور 1390, 20:56 عصر
ataGrid1.Item(1,1).Value = CStr(DataGrid1.Item(1,1).Value.ToString)
DataGrid1.Item(1,1).Value =DataGrid2.Item(2,2).Value)

من تبدیلش میکنم اما این خطا چیه که اتفاق میافته
74601
حتی این پیامی که بهم نشون میده هردوتا رو string نشون میده

MessageBox.Show(DataGrid1.Item(1, 1).FormattedValueType.ToString & " فرمت " & DataGrid2.Item(2, 2).FormattedValueType.ToString)