John W. Colby
jwcolby at colbyconsulting.com
Fri Aug 26 08:15:02 CDT 2005
I have designed a class, with the New widget (constructor) having a set of parameters, with the parameters type declared. New(ByVal lintPKID As Int32, ByVal lstrForeignName As String, ByVal lstrLocalName As String, _ ByVal lintLen As Int16, ByVal lintPosStart As Int16, ByVal lintPosStop As Int16, _ ByVal lblnActive As Boolean, ByVal lblnCritical As Boolean, _ ByVal lstrForeignDescr As String, ByVal lstrLocalDescr As String, _ ByVal lstrFmt As String, ByVal lblnRightJustified As Boolean, ByVal lstrNotes As String) The problem I am running in to is that I am loading this stuff from a table. I have a class that I initialize, which returns a data reader, and I take the fields from the reader and pass the values in as follows: Dim lclsData As clsData Dim lDr As OleDbDataReader lclsData = New clsData(lstrDataProvider, lstrDataSrc) 'Get an instance of clsData lclsData.pSQL = "SELECT * FROM " & lstrTblName & " WHERE ACTIVE = True;" 'Set the SQL statement If lclsData.mDrOpen() Then 'Open the reader Dim lclsFld As clsFld 'dim a variable to hold clsFld instances lDr = lclsData.pDR 'Get the data reader While lDr.Read() 'Cycle through the field format records 'Loading the data from each field format record into the clsFld instance lclsFld = New clsFld(lDr("PKID"), lDr("ForeignFldName"), lDr("LocalFldName"), _ lDr("Length"), lDr("PosStart"), lDr("PosStop"), _ lDr("Active"), lDr("Critical"), _ lDr("ForeignDescr"), lDr("LocalDescr"), _ lDr("Format"), lDr("RightJustified"), lDr("Notes")) The last line is pulling null values out of the "RightJustified" and "Notes" fields and trying to pass them in. The program is throwing a runtime error - "cast from type dbNull to type String not valid" In this specific case I can go in and "fix" the source data but how do I handle this if nulls are a valid possibility and I want them to be allowed to be passed in? Do I need to change my parameter type to object (or untyped)? John W. Colby www.ColbyConsulting.com Contribute your unused CPU cycles to a good cause: http://folding.stanford.edu/