VB - DBNULL z MYSQL   zodpovězená otázka

VB.NET

mam jeden problem s hodnotou DBNULL která se mi vrací z MYSQL. Mám propojení na dbazi MYSQL a čtu z tabulek hodnoty. to všechno je v pořádku, až na problém který nastane když mi vrátí hodnotu DBNULL. Jakmile mi vráti hodnotu DBNULL aplikace jde do kolize. Potřebuji tuto hodnotu konvertovat na string. Ale VB mi zahlasí že DBNULL se nedá konvertovat na string. nevíte jak to udělat. Nebo jak to ošetřit aby když dojde DBNULL vložil do proměné třeba prázdný řetězec. přikládám kus kodu který se stará o načtení dat.

Dim MyConnection As New Odbc.OdbcConnection("DRIVER={MySQL ODBC 3.51 Driver};" & _
                                        "SERVER=" & SERVER1 & ";" & _
                                        "DATABASE=" & DATABASE1 & ";" & _
                                        "UID=" & UID1 & ";" & _
                                        "PASSWORD=" & PASS1 & ";" & _
                                        "OPTION=3;")
        MyConnection.Open()
        Dim MyCommand As New Odbc.OdbcCommand
        MyCommand.Connection = MyConnection
MyCommand.CommandText = "SET NAMES '" + char1 + "'"
        MyCommand.ExecuteNonQuery()
MyCommand.CommandText = "SELECT id,customers_id,customers_name,
order_total FROM " & PREFIX1 & "orders"
        Dim fdread As Odbc.OdbcDataReader = MyCommand.ExecuteReader(CommandBehavior.CloseConnection)
        DataGridView1.SelectAll()
        DataGridView1.Rows.Clear()
        While fdread.Read
            Dim id As Integer = fdread.GetValue(0)
            Dim customers_id As String = fdread.GetValue(1)
            Dim customers_name As String = fdread.GetValue(2)
            Dim customers_company As String = fdread.GetValue(3)
            DataGridView1.Rows.Add(id, customers_id, customers_name, customers_company)
            '  Me.Validate()
            '  Me.DataGridView1.Update()
        End While
        MyConnection.Close()

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nejprve si objekt ulož do proměnné typu Object, pak zkontroluj, jestli není DbNull a až poté ho konvertuj na případný string:

Dim customers_name As String = String.Empty
Dim hodnota As Object = fdread.GetValue(2)
If Not System.Convert.DbNull(hodnota) Then customers_name = System.Convert.ToString(hodnota)

Tvůj příspěvek řadím do kategorie .NET, podle kódu se nejedná se VB6!

nahlásit spamnahlásit spam 0 odpovědětodpovědět

No vidíš to mne nenapadlo. Díkymoc. Jinak tato věcička není dělaná pod VB.NET, ikdyž přistupuje na MYSQL. Ale ve Visual Basic 2008 Express.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Visual Basic 2008 je Visual Basic .NET. Přečtěte si tento článek, ať je ve verzích jasno: http://www.vbnet.cz/blog-clanek--86-jak_...

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback