Cerca

VB.NET – Connessioni e Query con un Database SQL Compact Edition SDF

Indice Articolo

Ultimi articoli pubblicati

SQL Server Compact Edition è la versione gratuita di SQL con il quale potete creare dei mini database senza nessun problema. Questi giorni mi sto divertendo con Visual Studio 2010 e volevo condividere con voi delle informazioni su come definire una connessione verso un database Compact di SQL. Oltre alla connessione vedremo anche come eseguire delle semplici query verso questo Database.

Per creare delle connessioni verso un database dovete importare lo spazio nomi System.Data.SqlServerCe e per fare questo dovete scrivere questa riga di codice al inizio della vostra class/modulo:

Import System.Data.SqlServerCe

A questo punto dentro la vostra funzione dovete definire SQLCeConnection e un stringa (che chiameremo sSqlCon) con il path del file SDF.

Dim sqlCon As SqlCeConnection = Nothing
Dim sSqlCon As String = string.Empty

Poi dentro una istruzione try catch istanziate la variabile sqlCon e la aprite come segue:

Try
sSqlCon = “PathFileSDF\FileDB.SDF”
sqlCon = New SqlCeConnection(sSqlCon)
sqlCon.Open()
Catch ex As Exception
Throw ex
Finally
sqlCon.Close()
End Try

Di solito una connessione si apre per eseguire una query sul database. Per fare questo dovete definire e istanziare una variabile di tipo SqlCeCommand. Ecco come dovete fare:

Dim cmdSQL As SqlCeCommand = Nothing
cmdSQL = New SqlCeCommand(” SELECT * FROM TbProva “)

A questo punto dovete eseguire la query. Per l’esecuzione ci sono diversi modi che vi spiegherò nel articolo di domani. Se avete qualche domanda potete scrivere nei commenti.

11 risposte

  1. Ciao, a me non funziona, sto provando da poco sdf in quanto utilizzavo access. Ma ora sono passato a win7 64bit e voglio cambiare per supportare a pieno anche i 64bit. Nella string sql.close() mi dice “Riferimento a un oggetto non impostato su un’istanza di oggetto.” in debug. Da cosa può essere dovuto??

  2. strina sql.close()??? Non è che chiudi la stringa, ma chiudi la connessione…
    Se la variabile di tipo SqlCeConnectionè stata inizializzata correttamente ed è stata aperta allora il close non ha motivo per cui non dovrebbe funzionare..

    Ciao

  3. Dim sqlCon As SqlCeConnection = Nothing
    Dim sSqlCon As String = String.Empty

    Try

    sSqlCon = “Database1.sdf”

    sqlCon = New SqlCeConnection(sSqlCon)

    sqlCon.Open()

    Dim cmdSQL As SqlCeCommand = Nothing

    cmdSQL = New SqlCeCommand(” SELECT * FROM Utenti “)

    Catch ex As Exception

    ‘MsgBox(ex.Message)

    End Try

    sqlCon.Close()

    Mi da quell’errore. Nella cattura dell’errore ho “Impossibile caricare la dll sqlceme35.dll”

  4. Ora ho reinstallato sql server compact edition. Ma mi dice ora “Il Formato della stringa di inizializzazione non conforme alla specifica che inizia all’indice 0.

  5. Scusa il codice corretto è questo, l’altro post dove ho messo il codice cancellalo pure magari fa confusione…

    Dim sqlCon As SqlCeConnection = Nothing
    Dim sSqlCon As String = String.Empty

    Try

    sSqlCon = “Database1.sdf”

    sqlCon = New SqlCeConnection(sSqlCon)

    sqlCon.Open()

    Dim cmdSQL As SqlCeCommand = Nothing

    cmdSQL = New SqlCeCommand(” SELECT * FROM Utenti “)
    sqlCon.Close()

    Catch ex As Exception

    MsgBox(ex.Message)

    End Try

  6. Direi che non gli piace il Path sSQlCon che hai inserito. Prova ad inserire un path completo.

  7. Mi dice sempre ” Il Formato della stringa di inizializzazione non conforme alla specifica che inizia all’indice 0.”

    Non riesco a capire ho messo tutto il percorso per intero ma niente.

    Grazie mille per l’aiuto.

  8. Allora è sbagliata la stringa di connessione ho inserito questa “Data Source=Database1.sdf;Persist Security Info=False;” e funziona.

  9. Ah scusa non me ne ero accorto ma alla sqlcommando gli va specificata anche la connessione. O si passa in fase di inizializzazione inseme alla query string oppure la setti dopo.

    Ciao

  10. Ti assicuro che io non ho mai passato niente di più che il path del file MDF. Sarà qualche impostazione diversa. Buona programmazione..

  11. Ottimo sicuramente potrà tornare utile se qualcuno legge questo post. Grazie mille comunque.

    Federico

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *