webForumDet fria alternativet

specified cast.. dataset + mysql

3 svar · 232 visningar · startad av P

PMedlem sedan jan. 20012 204 inlägg
#1

Har haft lite annat att göra ett tag så har inte kodat så mycket, så när jag satte mig idag så var det ett problem jag fastnad vid...

Felmeddelandet är: Specified cast is not valid.

Kod utdrag från databas klasserna:

Public Class DataAccess 
    
        'Write the database type in web.config: myssql / mysql / access
        Private strCnnDBType As String = ConfigurationSettings.AppSettings("CnnDBType")
        Private strCnnString As String = ConfigurationSettings.AppSettings("CnnString")
        Private strCnnMail as String = ConfigurationSettings.AppSettings("CnnMail") ' True = mail send
        
        ' Connection properties etc
        Private cmdSqlCommand As IDbCommand
        Private objDataAdapter As IDbDataAdapter       
        Private objCnn As IdbConnection
        
        ' Function for select right DB
        Function setDBType()
            Select Case strCnnDBType
                Case "Mssql"
                    objCnn = New SqlConnection(strCnnString)
                    objDataAdapter = New SqlDataAdapter()
                    cmdSqlCommand = New SqlCommand()
                Case "Mysql"
                    objCnn = New OdbcConnection(strCnnString)
                    objDataAdapter = New OdbcDataAdapter()
                    cmdSqlCommand = New OdbcCommand()
                Case "Access"
                    objCnn = New OledbConnection(strCnnString)
                    objDataAdapter = New OledbDataAdapter()
                    cmdSqlCommand = New OledbCommand()
                Case Else
                    _ThrowError("FEL: Databastypen är felaktig, kontrollera web.config")
            End Select  
        End Function
        
             
        Function CreateCommand(SqlStatement as String)
        
            SqlStatement = SqlStatement.Replace("'","")
            Dim SqlCommand as New OdbcCommand(SqlStatement,objCnn) 
            Return SqlCommand   
            
        End Function
        ' *****************************************            
        '  Return data by a DataSet()
        ' *****************************************
        Function GetDataSet(SqlStatement As String)
            SetDbType()
            Try
                Dim objDataSet as New DataSet()
                objCnn.Open()
                objDataAdapter.SelectCommand = CreateCommand(SqlStatement)
                objDataAdapter.Fill(objDataSet)
                Return objDataSet
            Catch Exp as SqlException
                Throw exp
            Finally 
                objCnn.Close()
            End Try
        End Function

och sen i klassen som anropar...

    Public Class bdBook 'CMS BusinessData
        Inherits DataAccess
        
        Public Function aa()
            Dim strSql as String = "Select * from tbl_admin"
            Return GetDataSet(strSql)
        End Function
        
    End Class    
    

    Public NotInheritable Class dbBook ' Business Layer  
      
        Public Shared Function Test()
            Dim objData as New bdBook
            Return (objData.aa())
        End Function
          
    End Class

och sen i aspx filen

Sub Page_Load(obj as Object, e as EventArgs)
        Dim ds As DataSet()
        [b]ds = dbBook.Test[b]
End Sub

Har suttit med detta hela dagen... *river håret*

red/ jag vet att CreateCommand() inte är 100%-ig då databasen inte väljs "dynamsikt " där...

SkarreMedlem sedan apr. 20012 427 inlägg
#2

Re: specified cast.. dataset + mysql

P skrev:

Felmeddelandet är: Specified cast is not valid.

Är det verkligen hela felmeddelandet? Om du vet vilken rad det gäller så skulle du kunna markera denna i fetstil. Kan det vara så att du försöker göra en "implicit" cast där det krävs en "explicit cast"?

RED: stavfel.

PMedlem sedan jan. 20012 204 inlägg
#3

det är markerat. Allt ligger ju i en klass/dll så jag får inget "finare" felmeddelande.

implicit/explicit har jag inte en aning om vad du pratar om :\

PMedlem sedan jan. 20012 204 inlägg
#4
Dim ds As New DataSet()
ds = dbBook.Test

eller 
Dim ds As DataSet
128 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)