PDA

View Full Version : پیغام DBNull در جدول



mostafa_leman
شنبه 27 آبان 1385, 10:02 صبح
با سلام خدمت اساتید محترم
این کد من چه اشکالی داره؟
ممنون میشم اگه راهنماییم کنین



For I = 0 To Me.PizzaDBDataSet.TbDocument.Count - 1
If Me.PizzaDBDataSet.TbDocument.Item(I).DocCode = Doc_Code Then
Me.txtDocNumber.Text = Doc_Code
Me.cboAccountName.Text = Convert.ToString(Me.PizzaDBDataSet.TbDocument.Item (I).PersonName)
Me.txtAccountCode.Text = Me.PizzaDBDataSet.TbDocument.Item(I).PersonCode
Me.txtDescription.Text = Convert.ToString(Me.PizzaDBDataSet.TbDocument.Item (I).Description)
Me.txtDate.Text = Convert.ToString(Me.PizzaDBDataSet.TbDocument.Item (I).Docdate)
Exit For
End If
Next


این پیغام رو میده:



The value for column 'PersonName' in table 'TbDocument' is DBNull. ---> System.InvalidCastException: Conversion from type 'DBNull' to type 'String' is not valid


فیلد PersonName در جدول TbDocument مقدار داره و NULL نیست اما بازم Error داره . لطفا کمکم کنین

na3er-faraji
شنبه 27 آبان 1385, 15:28 عصر
من واسه فیلدها نول که بار اول اجرا میشه اینو مینویسم

Dim maxId As Object
If maxId Is DBNull.Value Then
maxId = 242000
Else
maxId += 1
End If

asar_001
شنبه 27 آبان 1385, 17:25 عصر
اخر همه اونهاییکه احتمال می دی null هستند
"" &
را اضافه کن

mostafa_leman
شنبه 27 آبان 1385, 19:35 عصر
سلام . با تشکر ار عصار عزیز اما مشکل من اینجاست که فیلد من خالی نیست یعنی Null نیست و دارای مقدار هست . فقط توی تعریف دیتابیس فیلد را AllowNull تعریف کردم
آقای SWI منظور شمارو کامل نفهمیدم . میشه بیشتر توضیح بدین؟

saeed_rezaei
شنبه 27 آبان 1385, 21:48 عصر
تو چندمین دور از حلقه ای که تعریف کردی این مشکل پیش می یاد؟ کل رکوردهای جدول که بررسی می شن چند تا هستن؟ بانک اطلاعاتیت با چی طراحی شده، اکسس، اوراکل، اس کی اول و... .
می تونی اطلاعات بیشتری بدی.

mostafa_leman
یک شنبه 28 آبان 1385, 07:51 صبح
من این حلقه رو برای فرم ویرایش استفاده میکنم . قبلش با یک Grid لیست Document ها رو به کاربر نشون میدم . وقتی شخص روی یک آیتم کلیک کرد مقدار سند به یک فرم جدید ارسال میشه . من این حلقه رو توی قسمت Load فرم جدید گذاشتم تا Object ها رو با مقادیر سند set کنم . حلقه هم دقیقا همون شماره سند رو پیدا میکنه . اما وقتی میخواد اطلاعاتشو Set با اون پیغام مواجه میشم . در ضمن کل رکوردهای جدولم زیاد نیستن ( فکر نمیکنم واسه این موضوع Error بده )
بانک اطلاعاتیم Sql Server 2000 است

مصطفی ملکی
یک شنبه 28 آبان 1385, 16:12 عصر
به جای تابع convert ، از PersonName.toString استفاده کن

mostafa_leman
سه شنبه 30 آبان 1385, 00:02 صبح
آقا یکی به ما کمک کنه . من هنوز نتونستم مشکلمو حل کنم