Gestire Un Database da codice

di il
21 risposte

Gestire Un Database da codice

Salve a tutti
ultimamente ho aggiornato un software per renderlo compatibile con vista
questo mi ha costretto a passare da mio amato VB6 a VB2008 express

ci sono riuscito anche se con tante peripezie, ma l'esperienza mi ha fatto sorgere un dubbio

in vb6 potevo gestire liberamente il database da codice creando un oggetto connection (cnn nell'esempio) e una variabile string (SQL nell'esempio) e poi usando questa procedura
SQL="codice in sql da inserire"
cnn.execute SQL
non esiste un sistema simile con vb2008 per fare questo tipo di procedura?

21 Risposte

  • Re: Gestire Un Database da codice

    Ciao

    certo che esiste la possibilità anche in vb.net
    
    Dim connessione as new SqlConnection(StringaConnessione)
    Dim comando as new SqlCommand(connessione, stringaSql)
    comando.ExecuteNonQuery()
    comando.Dispose()
    
  • Re: Gestire Un Database da codice

    Ok penso di aver capito
    grazie mille per l'aiuto!!!
  • Re: Gestire Un Database da codice

    Figurati, siamo qui per questo

    il primo giro di birra lo offro io
    Il prossimo tu vero?!?
  • Re: Gestire Un Database da codice

    Certo
    quando vuoi
  • Re: Gestire Un Database da codice

    Ciao a tutti

    eravamo già pronti per andare a bere ma....

    allora ho provato ad eseguire la sintassi descritta prima (un po' in ritardo lo ammetto ma purtroppo il lavoro nn mi ha dato tregua )

    la sintassi incriminata è questa
                Dim cnn As New SqlConnection("Data Source=|DataDirectory|\MyDatabase#1.sdf")
                Dim stringasql As String
                stringasql = "INSERT INTO Movimenti (Banca, Data, Descrizione, Uscite, Entrate) VALUE (" + lblBancaNuovo.Text + "," + DtpDataNuovo.Text + "," + TxtDescrizioneNuovo.Text + "," + TxtEntrateNuovo.Text + "," + TxtUsciteNuovo.Text + ")"
                Dim comando As sqlcommand (cnn, stringasql)
    mi segnala errori nelle dischiarazioni New Sql Connection e SqlCommand (dicendo in pratica che non le riconosce come una possibile dichiarazione)

    queste sono le descrizioni degli errori di vb
    1	Tipo 'SqlConnection' non definito.	
    2	I limiti di matrice non possono trovarsi negli identificatori di tipo.
    
    ma cosa aveva il caro vecchio vb6 che non andava...
  • Re: Gestire Un Database da codice

    Hai aperto la connessione con cnn.Open(); ?
    Alla fine chidi la connessione cnn.Close(); ?

    Poi nella stringa stringsql
    stringasql = "INSERT INTO Movimenti (Banca, Data, Descrizione, Uscite, Entrate) VALUE (" + lblBancaNuovo.Text + "," + DtpDataNuovo.Text + "," + TxtDescrizioneNuovo.Text + "," + TxtEntrateNuovo.Text + "," + TxtUsciteNuovo.Text + ")"

    al posto di "VALUE" devi mettere "VALUES" plurale

    Poi devi aggiungere alla fine del blocco del tuo codice : comando.ExecuteNonQuery();

    Dim cnn As New SqlConnection("Data Source=|DataDirectory|\MyDatabase#1.sdf")
    Dim stringasql As String
    cnn.Open(); // BISOGNA APRIRE LA CONNESSIONE AL DATABASE
    stringasql = "INSERT INTO Movimenti (Banca, Data, Descrizione, Uscite, Entrate) VALUE (" + lblBancaNuovo.Text + "," + DtpDataNuovo.Text + "," + TxtDescrizioneNuovo.Text + "," + TxtEntrateNuovo.Text + "," + TxtUsciteNuovo.Text + ")"
    Dim comando As sqlcommand (cnn, stringasql)
    comando.ExecuteNonQuery(); // MANCAVA ANCHE QUESTO
    cnn.Close(); // E ALLA FINE DELLA QUERY CHIDUERE LA CONNESSIONE

    Prova se non ci sono errori nella stringa di connessione dovrebbe funzionare
  • Re: Gestire Un Database da codice

    Grazie per i consigli
    sicuramente non funziona senza

    però il problema non è solo nella connessione ma mi segnala proprio un errore di sintassi nel modo in cui è dichiarato l'oggetto connection e l'oggetto command
  • Re: Gestire Un Database da codice

    Penso che ci stiamo avvicinando alla soluzione

    allora ho provato ad aggiungere sqlclient a sqlcommand e sql connection e a fare le correzioni che mi ha consigliato fzannino quindi il codice mi risulta così:
                Dim cnn As New SqlClient.SqlConnection("Data Source=|DataDirectory|\MyDatabase#1.sdf")
                cnn.open()
                Dim stringasql As String
                stringasql = "INSERT INTO Movimenti (Banca, Data, Descrizione, Uscite, Entrate) VALUES (" + lblBancaNuovo.Text + "," + DtpDataNuovo.Text + "," + TxtDescrizioneNuovo.Text + "," + TxtEntrateNuovo.Text + "," + TxtUsciteNuovo.Text + ")"
                Dim comando As SqlClient.SqlCommand(cnn, stringasql)
                comando.executenonquery()
                cnn.close
    adesso mi riconosce sqlconnection e sqlcommand ma mi segnala ancora un errore di sintassi nella dischiarazione di sqlcommand segnalandomi la voce cnn e dicendomi che i tipi matrici non si dichiarano negli identificatori di tipo (come se stessi dichiarando una matrice.....doh)
  • Re: Gestire Un Database da codice

    Secondo me l'errore sta nella "stringasql"

    prova così :
    
    stringasql = "INSERT INTO Movimenti (Banca, Data, Descrizione, Uscite, Entrate)  "+
    "VALUES ( lblBancaNuovo.Text  ,   DtpDataNuovo.Text  , TxtDescrizioneNuovo.Text  ,  TxtEntrateNuovo.Text  ,  TxtUsciteNuovo.Text )"
    
    NB : Mi raccomando segui anche gli spazi in modo che VALUES non risutli attaccato a Entrate)

    ( ......... ,Entrate)VALUES ........ ==> da evitare
  • Re: Gestire Un Database da codice

    Grazie per il consiglio, ora controllo

    però il problema non sta nella stringa sql (non quello che mi da vb2008) infatti mi segnala la dichiarazione (non mi fa partire neanche il debug ma si impalla nella compilazione)
    essendo vista come una stringa vb non compila il codice sql quindi è da escludere

    cmq grazie anche perchè se no mi bloccavo subito dopo aver risolto il problema della dichiarazione
  • Re: Gestire Un Database da codice

    Ciao
    semplicemente all'inizio del codice, prima della dichiarazione della classe, inserisci le seguenti righe
    
    Imports System.Data
    Imports System.Data.SqlClient
    
    Public Class Form1
    
    End Class
    
    inserisci i due imports e il tutto dovrebbe andare.
    Ps. puoi togliere i SqlClient che ti è stato suggerito di mettere nei post precedenti.
  • Re: Gestire Un Database da codice

    Grazie mille Ora funziona alla perfezione!!!
    Ragazzi non so cosa farei senza di voi (mi dispiace solo non essere più esperto e dover sempre chiedere e poter dare ben pochi consigli...)
  • Re: Gestire Un Database da codice

    Non preoccuparti che pian piano che vai avanti potrai iniziare ad aiutare anche te.
    Tutto sommato nessuno è maestro, e anche noi chiediamo aiuto.
  • Re: Gestire Un Database da codice

    No problem !!! Anche io ho iniziato così chiedendo e passando giornate a cercare su internet e tutt'ora continuo a farlo
    Una domanda : la "stringasql" era giusta la mia versione o la tua ?
    Te lo chiedo perchè io programmo in c# non so se i caratteri (") (') hanno lo stesso significato in VB anche se credo di si.
Devi accedere o registrarti per scrivere nel forum
21 risposte