Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [VB2010 + MySQL] Esiste il database?

    Ciao a tutti,

    ho un problema piuttosto particolare. La mia applicazione si connette con successo al mio database MySQL sul server. Mi è venuta però in mente una nuova funzione che potrei implementare: vorrei infatti controllare se esiste il database e nel caso non esista crearlo tramit e script SQL.
    Io ho scritto questo codice

    codice:
    Dim creaDB As String = "CREATE DATABASE IF NOT EXIST " & frmDatabase.txtDatabase.Text
            apri()
            Dim myAdapter As New MySql.Data.MySqlClient.MySqlDataAdapter
            Dim myCommand As New MySql.Data.MySqlClient.MySqlCommand()
            myCommand.Connection = conn
            myCommand.CommandText = creaDB
            myAdapter.SelectCommand = myCommand
            Dim myData As MySql.Data.MySqlClient.MySqlDataReader
            myData = myCommand.ExecuteReader()
            If myData.HasRows = 0 Then
                MsgBox("Query eseguita correttamente")
            Else
                MsgBox("Query eseguita correttamente")
    
            End If
            chiudi()
    ma mi genera un errore dicendomi che c'è un errore nella query. Dove sbaglio?
    Errare è umano, ma per fare veramente casino ci vuole la password di root

  2. #2
    trovato... sono un fesso. LA query va scritta così:

    codice:
    Dim creaDB As String = "CREATE DATABASE IF NOT EXISTS " & frmDatabase.txtDatabase.Text
    Errare è umano, ma per fare veramente casino ci vuole la password di root

  3. #3
    Usa le query parametriche, perdio!
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Ciao,

    mi potresti fare un esempio di query parametrica applicata a questo caso?
    Errare è umano, ma per fare veramente casino ci vuole la password di root

  5. #5
    codice:
    Dim myCommand As New MySql.Data.MySqlClient.MySqlCommand()
    myCommand.CommandText="CREATE DATABASE IF NOT EXISTS @DbName"
    myCommand.Parameters.Add(new SqlParameter("@DbName", frmDatabase.txtDatabase.Text))
    ' eccetera
    (cosa che avresti trovato in un momento con una ricerca su Google )

    Tra l'altro, perché ExecuteReader quando è una query di modifica del DB? Usa ExecuteNonQuery...
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.