Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 26
  1. #1
    Utente di HTML.it L'avatar di Vash SD
    Registrato dal
    Sep 2006
    Messaggi
    502

    [VB 9.0] Connessione db + query insert into

    Ciao ragazzi, sto imparando piano piano la tecnologia di Visual Basic, la sintassi principalmente poiché provengo già da un altro campo di programmazione, il PHP. In quest'ultimo settore, sono molto esperto e riesco a fare davvero di tutto, ma vi prego di continuare a leggere e di non prendermi in giro.

    Sto creando un programma in VB, ma non riesco a capire come effettuare una connessione con la versione 9.0 e un Database SQL Compact Edition SDF. Ho trovato in giro, su internet, una guida, che mi ha suggerito di aggiungere questo codice per effettuare una connessione e una query.

    codice:
    Import(System.Data.SqlServerCe)
    
                Dim sqlCon As SqlCeConnection = Nothing
    
                Dim sSqlCon As String = String.Empty
    
                Try
    
                    sSqlCon = "MyDatabase#1.SDF"
    
                    sqlCon = New SqlCeConnection(sSqlCon)
    
                    sqlCon.Open()
    
                    Dim cmdSQL As SqlCeCommand = Nothing
    
                    cmdSQL = New SqlCeCommand(" INSERT INTO script (nome_script, descrizione_script, codice_script, tag_script, preferito) VALUES (NomeInput.Text, DescrizioneInput.Text, ScriptInput.Text, TagInput.Text, PreferitiCheck.Text ")
    
                Catch ex As Exception
    
                    Throw ex
    
                Finally
    
                    sqlCon.Close()
    
                End Try
    L'inevitabile problema ora è che la grande potenza dell'Error List mi rivela tre errori principali:

    1. Name 'Import' is not declared
    2. 'System.Data.SqlServerCe' is a namespace and cannot be used as an expression
    3. Type 'SqlCeConnection' is not defined
      E quest'ultimo altre 3 volte.


    Qualche anima pia che mi spiega bene come risolvere il problema?
    Personal Home Page

  2. #2
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    Errore1:
    L'istruzione non si chiama Import ma Imports e va messa prima di qualsiasi altra dichiarazione e non nel corpo del codice. Inoltre devi ricordarti di inserire nei riferimenti del tuo progetto quello alla libreria System.Data.SqlServerCe;
    Errore2:
    L'istruzione Imports non necessita di parentesi;
    Errore3:
    Questo è dovuto al fatto che l'istruzione Imports era errata e quindi non metteva a disposizione i tipi ed i metodi contenuti in System.Data.SqlServerCe.


    Edit:
    Guarda il mio post sul forum di VisualStudio 2010.
    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  3. #3
    Utente di HTML.it L'avatar di Vash SD
    Registrato dal
    Sep 2006
    Messaggi
    502
    Ciao ShaleN,
    Grazie mille per la tua risposta, sono riuscito a correggere tutti i miei futili errori...
    Purtroppo, però, ho un'ulteriore domanda, dato che non sono riuscito a trovare la tua discussione...

    Puoi farmi un esempio pratico per far partire quella query e, tramite un if, verificare se è stata inserita o meno nel database con un MessageBox.Show() ?

    Grazie e scusa, sono nelle tue mani; le guide della rete sono davvero terribili...
    Vash.
    Personal Home Page

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Ti manca l'esecuzione della query:

    codice:
    Dim esito as boolean = Cbool(cmdSQL .ExecuteNonQuery())
    Se esito è True hai aggiunto un record.
    Sbagliare è umano, perseverare è diabolico.

  5. #5
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    Originariamente inviato da Vash SD
    ... dato che non sono riuscito a trovare la tua discussione...
    Forse mi sono spiegato male: non ho aperto una discussione sul forum di visual studio 2010, ma ti ho consigliato di occhiare il post che ho aggiunto alla tua discussione; nella quale ti avvisavo della discussione duplicata (e che il moderatore ha prontamente chiuso).

    Originariamente inviato da Vash SD
    Puoi farmi un esempio pratico per far partire quella query e, tramite un if, verificare se è stata inserita o meno nel database con un MessageBox.Show() ?
    Ci ha pensato Pirelli72.

    Originariamente inviato da Vash SD
    Grazie...
    Prego

    Originariamente inviato da Vash SD
    ...le guide della rete sono davvero terribili...
    Lo so.
    Ciao e a presto
    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  6. #6
    Utente di HTML.it L'avatar di Vash SD
    Registrato dal
    Sep 2006
    Messaggi
    502
    codice:
    Try
    
                    sSqlCon = "MyDatabase#1.SDF"
    
                    sqlCon = New SqlCeConnection(sSqlCon)
    
                    sqlCon.Open()
    
                    Dim cmdSQL As SqlCeCommand = Nothing
    
                    cmdSQL = New SqlCeCommand(" INSERT INTO script (nome_script, descrizione_script, codice_script, tag_script, preferito, categoria_script) VALUES (" + NomeInput.Text + ", " + DescrizioneInput.Text + ", " + ScriptInput.Text + ", " + TagInput.Text + ", " + PreferitiSelect.Text + ", " + CategoriaSelect.Text + " ")
    
                    Dim esito As Boolean = CBool(cmdSQL.ExecuteNonQuery())
    
                    If esito = True Then
                        Me.Close()
                        insert.Close()
                        MessageBox.Show("Script aggiunto con successo!", "Successo!")
                    Else
                        insert.Close()
                        MessageBox.Show("Script non salvato, riprova per favore!", "Errore!")
                    End If
    
                Catch ex As Exception
    
                Finally
    
                    sqlCon.Close()
                    sqlCon = Nothing
    
                End Try
    Strano, mi dà errore sulla terz'ultima riga, sqlCon.Close().
    Cosa sbaglio?
    Personal Home Page

  7. #7
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    Prova a sostituire

    codice:
     sqlCon.Close()
    con

    codice:
    If sqlCon.State = ConnectionState.Open Then sqlCon.Close()
    Così eviti di chiudere la connessione se già chiusa. Inoltre nell' If devi scrivere:

    codice:
                     If esito = True Then
                        insert.Close()
                        MessageBox.Show("Script aggiunto con successo!", "Successo!")
                        If sqlCon.State = ConnectionState.Open Then sqlCon.Close()
                        Me.Close()
                    Else
                        insert.Close()
                        MessageBox.Show("Script non salvato, riprova per favore!", "Errore!")
                    End If
    altrimenti chiudi il form prima di visualizzare il MessageBox e di chiudere l'oggetto insert (che non ho capito cosa sia). Inoltre prima dichiudere la Form ricorda di controllare la connessione al database e se aperta di chiuderla.
    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  8. #8
    Utente di HTML.it L'avatar di Vash SD
    Registrato dal
    Sep 2006
    Messaggi
    502
    Aaah, è vero, grazie mille!
    Ora l'unico problema è sapere perché non fa nulla: non chiude né entrambe le finestre, avvisando, come se la news fosse inserita, né chiude insert che dovrebbe chiuderlo a prescindere... tu che dici?
    Personal Home Page

  9. #9
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    Se insert (ripeto che non so cosa sia) deve essere chiuso a prescindere; mettilo nella Finally del Try...Catch

    Originariamente inviato da Vash SD
    non chiude né entrambe le finestre, avvisando, come se la news fosse inserita
    Questa non l'ho capita: vuoi dire che non avvisa quando il record viene inserito, che non chiude il Form o cos'altro? Inoltre a cosa ti riferisci con entrambe le finestre?
    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  10. #10
    Utente di HTML.it L'avatar di Vash SD
    Registrato dal
    Sep 2006
    Messaggi
    502
    Insert è una semplice windows application con un immagine di "loading" e una scritta accanto "caricamento dati in corso"

    Il problema è che non inserisce niente e non fa assolutamente niente!
    Se non dovesse riuscire ad inserire il nuovo recordset, dovrebbe darmi l'alert con l'errore, invece non mi dà neanche quello...
    Personal Home Page

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.