PDA

View Full Version : مشکل در خطای نمایش داده شده در دیتا گرید



forozeshfard
شنبه 30 دی 1385, 07:05 صبح
با سلام
من اطلاعات یک سلول خاص از دیتا گرید می خواهم که کد زیر را برای آن می گذارم
(0,1) label1.text= datagrid1.item
که هیچ مشکلی ندارد اما وقتی همین کد را در برنامه که قبلا نوشته ام می گذارم خطای زیر را می دهد و در زیر (0,1) datagrid1.item خط می کشد .

Option Strict On disallows implicit conversions from 'System.Object' to 'String'

programmermp
شنبه 30 دی 1385, 10:12 صبح
سلام

نسخه وی بی که استفاده می کردی که تغییر نکرده

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

reza_rad
شنبه 30 دی 1385, 10:48 صبح
اما وقتی همین کد را در برنامه که قبلا نوشته ام می گذارم خطای زیر را می دهد و در زیر (0,1) datagrid1.item خط می کشد .


کد این قسمت رو بگذارید...

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

forozeshfard
شنبه 30 دی 1385, 13:43 عصر
سلام
بسیار متشکرم از توجه شما
در جواب شما جناب آقای صالحی عرض کنم که از دیتا گرید استفاده می کنم و این برنامه ای که می گویم نوشته ام تاریخش به یک هفته قبل می رسد .

در جواب آقای رضا راد :
Label1.Text = (DataGrid1.Item(0, 1))
Dim m As String = Label1.Text
Dim h As String = "گروه C"
If (m <> h) Then
MessageBox.Show("گروه اشتباه است")

Else
Dim adapter As New OleDbDataAdapter("select id,name as نام_آژانس,gro as نام_گروه,manager as نام_مدیرعامل,dateofbeard as تاریخ_تولد,dateofmarred as تاریخ_ازدواج,tel as شماره_تلفن,fax as شماره_فکس,mobil as موبایل,code as کد_اشتراک,account as شماره_حساب,email as ایمیل,website as وب_سایت,adr as آدرس from table1 where id=?", con)

con.Open()


Try
adapter.UpdateCommand = New OleDbCommandBuilder(adapter).GetUpdateCommand()
adapter.Update(ds1, "table1")
Catch ex As Exception
MessageBox.Show("مشخصات این آژانس یا موسسه قبلا ثبت گردیده است")
End Try
con.Close()
TextBox1.Text = ""
ds1.Clear()
End If

programmermp
شنبه 30 دی 1385, 14:09 عصر
سلام
بسیار متشکرم از توجه شما
در جواب شما جناب آقای صالحی عرض کنم که از دیتا گرید استفاده می کنم و این برنامه ای که می گویم نوشته ام تاریخش به یک هفته قبل می رسد .

در جواب آقای رضا راد :
Label1.Text = (DataGrid1.Item(0, 1))
Dim m As String = Label1.Text
Dim h As String = "گروه C"
If (m <> h) Then
MessageBox.Show("گروه اشتباه است")

Else
Dim adapter As New OleDbDataAdapter("select id,name as نام_آژانس,gro as نام_گروه,manager as نام_مدیرعامل,dateofbeard as تاریخ_تولد,dateofmarred as تاریخ_ازدواج,tel as شماره_تلفن,fax as شماره_فکس,mobil as موبایل,code as کد_اشتراک,account as شماره_حساب,email as ایمیل,website as وب_سایت,adr as آدرس from table1 where id=?", con)

con.Open()


Try
adapter.UpdateCommand = New OleDbCommandBuilder(adapter).GetUpdateCommand()
adapter.Update(ds1, "table1")
Catch ex As Exception
MessageBox.Show("مشخصات این آژانس یا موسسه قبلا ثبت گردیده است")
End Try
con.Close()
TextBox1.Text = ""
ds1.Clear()
End If

فروزش فرد عزیز یک زحمت بکش کدهات رو توی tag به صورت زیر بنویس که خوانا باشه

(داخل علامت [] بنویس code بعد کدهاتو بنویس بعد اخرش داخل علامت [] بنویس /code )

در مورد کدتون هم اگه خطا طبق گفته خدتون از کد


(0,1) label1.text= datagrid1.item

باشه با توجه به پیغام داده شده می شه برداشت کرد که شما می خواهید

یک شی (object) رو به داده نوع استرینگ تبدیل کنی که خوب نمی شه دیگه

چیز دیگه ای به نظرم نمی رسه

با تشکر

forozeshfard
شنبه 30 دی 1385, 14:38 عصر
سلام
بسیار متشکرم از دقت شما جناب آقای صالحی
این برنامه از یک تکس باکس یک نام را می گیرد و در دیتا گرید نشان می دهد و من می خواهم
جداگانه در یک لیبل مثلا مقدار یک فیلد را نمایش دهد . که نحوه دیدن یک ستون در دیتا گرید همان کد زیر است
[0,1] label1.text=datagrid1.item

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

DonetKarvb
شنبه 30 دی 1385, 14:44 عصر
سلام
بسیار متشکرم از دقت شما جناب آقای صالحی
این برنامه از یک تکس باکس یک نام را می گیرد و در دیتا گرید نشان می دهد و من می خواهم
جداگانه در یک لیبل مثلا مقدار یک فیلد را نمایش دهد . که نحوه دیدن یک ستون در دیتا گرید همان کد زیر است
[0,1] label1.text=datagrid1.item

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

label1.text = Me.DataGridView1.Rows(1).Cells(0).Value.Tostring
شما لطف کنید بگویید که این فیلد از گرید با چه چیزی پر شده است و یا اینکه ساختار جدول و کدی که این گرید را پر میکند اینجا بگذارید.
ار کدام ورژن VS استفاده مکیند!؟

programmermp
شنبه 30 دی 1385, 16:05 عصر
این کد رو یک تستی بکنید امیدوارم که جواب بگیرید

label1.text = Me.DataGridView1.Rows(1).Cells(0).Value.Tostring


دوست عزیز اقای فروزش فرد از دیتا گراید استفاده می کنند نه دیتاگراید ویو و کدی که شما

نوشتید فقط برای دیتاگراید ویو کار می کنه

درسته اقای فروزش فرد

اگه اشتباه می کنم پیشاپیش عذرخواهی می کنم

forozeshfard
شنبه 30 دی 1385, 16:25 عصر
سلام
متاسفانه این تکه کد هم جواب نداد
لازم به ذکر است که من با vs2003 کار می کنم و فقط دیتا گرید دارم و جالب این است که اون کد توی بر نامه من در تمام فرمها خطا می دهد و در دیگر برنامه هام خطا نمی دهد و هیچ مشکلی هم ندارد و دقیق جواب می دهد.
ممنون می شود اگر بتوانید به طریق دیگری راهنمایی کنید
مشکل من این است که من یک دیتا گرید دارم که کاربر درون آن تغییرات ایجاد می کند و باتون ثبت را فشار می دهد و اطلاعات ذخیره می شود حال نکته در این است که یک فیلد من گروه است که اطلاعات درون آن باید (a یا b ) باشد و اگر کاربر بخواهد آن را ویرایش کن و چیز دیگری جز a یا b وارد کند باید جلو آن رابگیرم و دنبال رفع این مشکل هستم .
لازم بذکر است که در هنگام وارد کردن اطلاعات در دیتا بیس این قسمت گروه در فرم که شامل a و b است را از داخل یک کامبو باکس انتخاب می کند .

programmermp
شنبه 30 دی 1385, 16:40 عصر
سلام

همچین مشکلاتی پیش می یاد که یک کد در یک پروژه کار نمی کنه ولی در پروژه دیگه جواب

می ده شما یک کاری باید انجام بدی یک بار وی بی دات نت رو حذف کن و دوباره نصب کن

اگه باز هم مشکل حل نشد متاسفانه فکر نکنم راهی جز ایجاد پروژه جدید داشته باشی

و در مورد گروه a,b اگه combobox در دیتاگراید هست که باید یک جوری محتویاتش رو بدست

بیاری و نزاری خارج از این دو مقدار باشه یا یک کار دیگه بکنی توی خاصیتهای مربوط به

ایتمهای دیتاگرایدت نگاه کن اون ایتمی که comboboxهست باید یک خاصیتی مثل

display style یا style داشته باشه که مشخص می کنه combobox قابلیت وارد کردن متن

رو به کاربر بده یا اینکه فقط کاربر بتونه گزینه های موجود در اون رو انتخاب کنه مثلا در

دیتا گراید ویو شما اگه گزینه dropdownlist رو برای display style کمبوباکست انتخاب کنی

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

کمبوباکس هست بنویسه

یه نگاهی به عکس ضمیمه بنداز منظورم اینطوری هست

و اگر هم کمبوباکست خارج از دیتاگراید هست که فکر نکنم

دیگه ان موقع اصلا به این مشکل بر نمی خوردی

forozeshfard
شنبه 30 دی 1385, 17:33 عصر
آقای صالحی بسیار متشکرم
فکر کنم آخرین راه حل همین که شما گفتید باشد