I created a class to update, insert, select and delete data with an object data source but I am getting the following error...
Unable to cast object of type 'System.Boolean' to type 'System.String'.
Description:
An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.InvalidCastException: Unable to cast object of type 'System.Boolean' to type 'System.String'.
Source Error:
Line 402: user.cellPhoneNumber = reader.GetString(10) Line 403: user.bDay = reader.GetString(11) Line 404: user.gender = reader.GetString(12)
Line 405: user.Newsletter = reader.GetBoolean(13) Line 406: Return
Class has...
Private m_newsletter As Boolean
Public Property Newsletter() As Boolean
Get
Return m_Boolean
End Get
Set(ByVal value As Boolean)
m_newsletter= value
End Set
End Property
....
Dim user As New Customer()
user.userName = reader.GetString(0)
user.FirstName = reader.GetString(1)
user.LastName = reader.GetString(2)
user.addressLine1 = reader.GetString(3)
user.addressLine2 = reader.GetString(4)
user.country = reader.GetString(5)
user.state = reader.GetString(6)
user.city = reader.GetString(7)
user.postalCode = reader.GetString(8)
user.homePhoneNumber = reader.GetString(9)
user.cellPhoneNumber = reader.GetString(10)
user.bDay = reader.GetString(11)
user.gender = reader.GetString(12)
user.Newsletter = reader.GetBoolean(13)
Return user
sounds like the data in the reader (returned by the query e.g reader.GetString(12)) is Boolean. I recommend that try using field names when getting data, when it's not that tied to remembering the order of the columns in the data
Like:
user.gender = Cstr(reader("gender")) 'assuming the column name in the data source is gender and you want ti to be a string - otherwise using Cbool if it indeed should be boolean
You can still use ordinals, if you want to - getting them on the first iteration with reader.GetOrdinal and then using with reader.GetXXX methods is perfectly possible, and eses things since you don't have to remember the indexes.
jfbomber
Member
18 Points
41 Posts
ERROR: Unable to cast object of type 'System.Boolean' to type 'System.String'
Jun 25, 2008 08:04 PM|LINK
I created a class to update, insert, select and delete data with an object data source but I am getting the following error...
Unable to cast object of type 'System.Boolean' to type 'System.String'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.Exception Details: System.InvalidCastException: Unable to cast object of type 'System.Boolean' to type 'System.String'.
Source Error:
Class has...
Private m_newsletter As Boolean
Public Property Newsletter() As Boolean
Get
Return m_Boolean
End Get
Set(ByVal value As Boolean)
m_newsletter= value
End Set
End Property
....
Dim user As New Customer()
user.userName = reader.GetString(0)
user.FirstName = reader.GetString(1)
user.LastName = reader.GetString(2)
user.addressLine1 = reader.GetString(3)
user.addressLine2 = reader.GetString(4)
user.country = reader.GetString(5)
user.state = reader.GetString(6)
user.city = reader.GetString(7)
user.postalCode = reader.GetString(8)
user.homePhoneNumber = reader.GetString(9)
user.cellPhoneNumber = reader.GetString(10)
user.bDay = reader.GetString(11)
user.gender = reader.GetString(12)
user.Newsletter = reader.GetBoolean(13)
Return user
What am I doing wrong?
System Unable to cast object of type boolean
joteke
All-Star
46284 Points
6896 Posts
ASPInsiders
MVP
Re: ERROR: Unable to cast object of type 'System.Boolean' to type 'System.String'
Jun 25, 2008 08:23 PM|LINK
Hi,
sounds like the data in the reader (returned by the query e.g reader.GetString(12)) is Boolean. I recommend that try using field names when getting data, when it's not that tied to remembering the order of the columns in the data
Like:
user.gender = Cstr(reader("gender")) 'assuming the column name in the data source is gender and you want ti to be a string - otherwise using Cbool if it indeed should be boolean
You can still use ordinals, if you want to - getting them on the first iteration with reader.GetOrdinal and then using with reader.GetXXX methods is perfectly possible, and eses things since you don't have to remember the indexes.
Teemu Keiski
Finland, EU
budugu
All-Star
41108 Points
6019 Posts
Re: ERROR: Unable to cast object of type 'System.Boolean' to type 'System.String'
Jun 25, 2008 08:25 PM|LINK
may be "gender" is a boolean field..
Try by changing to...
user.gender = reader.GetBoolean(12)make sure you click "Mark as Answer" for any post which has helped you.
"Don't be afraid to be wrong; otherwise you'll never be right."
jfbomber
Member
18 Points
41 Posts
Re: ERROR: Unable to cast object of type 'System.Boolean' to type 'System.String'
Jun 25, 2008 08:29 PM|LINK