PDA

View Full Version : مشکل با مقادیر نال



saeed hg
شنبه 15 مرداد 1390, 00:34 صبح
سلام دوستان. من یه برنامه ی مدیریت کتابخانه با ویبی دات نت 2008 و پایگاه داده ی اکسس نوشتم که یه مشکلی دارم و اون هم اینه که بعضی از فیلدها یا بعضی از جدولهام خالیه و هنگامی که دیتاگرید می خواد پربشه یا روی یه ردیف در دیتاگرید کلیک میکنم ارور میده ، چه جوری میشه این مشکل رو حل کرد؟؟؟:متفکر:

ممنون:قلب:

Mani_rf
شنبه 15 مرداد 1390, 08:13 صبح
نباید خطا بده! چه Error برمیگردونه؟!!

saeed hg
شنبه 15 مرداد 1390, 08:49 صبح
نباید خطا بده! چه Error برمیگردونه؟!!

conversation from type 'DBNUll' to type 'string' is not valid.

Mani_rf
شنبه 15 مرداد 1390, 09:16 صبح
خوب موقعی که داری اطلاعات را میخونی باید به String تبدیل کنی. انتهای کدی که داره اطلاعات را میریزه تو دیتاست یک .ToString بگذار تا مشکلت حل بشه. اگه منظورمو متوجه نشدی تکه کدی که اطلاعات را از دیتابیست میخونرو بگذار تا بگم چیکار کنی.

saeed hg
شنبه 15 مرداد 1390, 09:38 صبح
Public dt As New DataTable
Public ddt As New OleDbDataAdapter



'method to fetch User info and display it in the grid
Sub fillgrid()

Try


conectionstate()
ddt = New Data.OleDb.OleDbDataAdapter("select * from tbl_members_info", con)
dt = New DataTable
ddt.Fill(dt)
dt.Columns(0).ColumnName = "شماره ی کاربر"
dt.Columns(1).ColumnName = "نام و نام خانوادگی"
dt.Columns(2).ColumnName = "نام پدر"
dt.Columns(3).ColumnName = "تاریخ تولد"
dt.Columns(4).ColumnName = "کد ملی"
dt.Columns(5).ColumnName = "شماره ی شناسنامه"
dt.Columns(6).ColumnName = "شماره ی تلفن"
dt.Columns(7).ColumnName = "شماره ی موبایل"
dt.Columns(8).ColumnName = "آدرس"


DGmember.DataSource = dt
DGmember.PreferredColumnWidth = AutoSizeMode

'setMyDataGridTableStyleProperties(DGmember)


Catch ex As Exception

FarsiMessageBox.FMessageBox.Show(ex.Message, FarsiMessageBox.FMessageBoxButtons.OK, FarsiMessageBox.FMessageBoxIcons.Error)

End Try

End Sub

Mani_rf
شنبه 15 مرداد 1390, 10:25 صبح
یاز هم نباید خطا بده ، باید خودش مقدار های Null را تبدیل کنه، تو دیتاتیبل برای هر فیلد یک پروپرتی به اسم AllowDBNull هست که باید True باشه. چک کن اگه روی ستونی که خطا میده این گزینه False هست ، True کن.
dt.Columns(3).AllowDBNull = True

Mani_rf
شنبه 15 مرداد 1390, 10:49 صبح
اگه با این کار مشکلت حل نشد باید روش خوندن اطلاعات از دیتابیس را عوض کنی تا موقع خوندن کنترل بیشتر روی فیلد های ورودی داشته باشی.