+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 9 su 9

Ma dove mi crea il Database ? (esempio creazione database sdf)

  1. #1
    L'avatar di pijo1971
    pijo1971 non è in linea Novello
    ciao a tutti,
    sto cercando di creare un Database .sdf usando il seguente esempio:


         If File.Exists("Test.sdf") Then
               File.Delete("Test.sdf")
            End If
            Dim connStr As String = "Data Source = Test.sdf; Password = <password>"
    
            Dim engine As New Data.SqlServerCe.SqlCeEngine(connStr)
            engine.CreateDatabase()
            engine.Dispose()
    
            Dim conn As Data.SqlServerCe.SqlCeConnection = Nothing
    
            Try
                conn = New Data.SqlServerCe.SqlCeConnection(connStr)
                conn.Open()
    
                Dim cmd As Data.SqlServerCe.SqlCeCommand = conn.CreateCommand()
                cmd.CommandText = "CREATE TABLE myTable (col1 int, col2 ntext)"
                cmd.ExecuteNonQuery()
            Catch
            Finally
                conn.Close()
            End Try
    

    a parte un problemino con il comando "File", che poi vi spiego, il problema vero e' che dopo aver eseguito questa routine non trovo da nessuna parte (sul mio HD) il mio database Test.sdf.
    Mi sapete dire dove e' finito?

    Sono sicuro che qualcosa viene creato, poiche' se commento la prima parte di codice, quella che elimina il file se esiste, alla seconda volta che lancio la routine mi esce un errore poiche' mi si dice "file esistente" .


    Per completezza vi dico anche il problemino del comando "File" .

    Non sono riuscito ad aggiungere nei reference la libreria " System.IO" quindi l' ho dovuto usare in questo modo:

    System.IO.File.Exists("Tes.....

    come si fa ad aggiungere System.IO, visto che quando faccio ad d reference non me lo propone? cosa mi manca?


    ho fatto parecchie domande.. vi ringrazio anticipatamente per la vostra pazienza...
    ciao,
    luigi
    Ultima modifica di elisab; 17-10-2011 01:18 
    ℹ️ Leggi di più su pijo1971 ...

  2. #2
    L'avatar di pijo1971
    pijo1971 non è in linea Novello
    Ciao, ho scoperto dove mi crea il file
    lo crea nella cartella virtuale del palmare.
    Infatti, ho chiuso la mia applicazione, ho aperto "esplora file" sul palmare e .... eccolo li pronto che mi aspettava.

    Poi ho creato una "Storage card" virtuale sul palmare con riferimento ad una cartella sul mio PC, ho spostato li il mio file e alla fine me lo sono ritrovato sul mio PC.

    per il problema del reference della libreria System.IO ho risolto importandola all'inizio via codice nella mia form:

    Imports System.IO


    ciao,
    luigi
    ℹ️ Leggi di più su pijo1971 ...

  3. #3
    L'avatar di alextyx
    alextyx non è in linea Moderatore Globale
    Bravo Luigi e grazie per aver condiviso la soluzione che hai trovato. E' una buona abitudine che aiuterà altri colleghi che effettueranno ricerche sul forum!
    ℹ️ Leggi di più su alextyx ...

  4. #4
    L'avatar di pijo1971
    pijo1971 non è in linea Novello
    grazie per l'appunto... condivido pienamente... per far crescere un forum ognuno deve sembre contribuire.. anche con il proprio (come nel mio caso) piccolo aiuto.

    comunque, tornado alle problematiche... il mio problema adesso e' popolare la tabella creata.

    Ho provato ad aggiungere il comando

    cmd.CommandText = "INSERT INTO myTable (col1, col2) VALUES (5,'prova')"
    cmd.ExecuteNonQuery()
    
    ma sembra che non abbia alcun effetto, sapete se devo fare una sorta di update dopo? nell' help non sono riuscito a trovare nulla.

    Grazie ancora
    Luigi
    Ultima modifica di elisab; 17-10-2011 01:18 
    ℹ️ Leggi di più su pijo1971 ...

  5. #5
    L'avatar di alextyx
    alextyx non è in linea Moderatore Globale
    Così a prima vista, proverei a specificargli la connessione su cui eseguire il comando. Cmq, ti passo una routine che sembra funzionare piuttosto bene, almeno con DB di tipo .mdb

     
    ''' <summary>
    '''Esegue una istruzione SQL di UPDATE, INSERT o DELETE, passata come primo parametro, sul database connesso 
    ''' alla connessione passata come secondo parametro.In caso di successo, ritorna il numero di righe 
    ''' affette dall'operazione. In caso di errore torna =-1
    ''' </summary>
    ''' <param name="StringaSQL"></param>
    ''' <param name="Cn"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Function EseguiComandoSQL(ByVal StringaSQL As String, ByVal Cn As OleDb.OleDbConnection) As Integer
     
    EseguiComandoSQL = 0
    Dim MyQuery As New OleDb.OleDbCommand
    Try
    MyQuery.CommandType = CommandType.Text
    MyQuery.Connection = Cn
    MyQuery.CommandText = StringaSQL
    EseguiComandoSQL = MyQuery.ExecuteNonQuery()
    Catch ex As Exception
    MessageBox.Show("Si è verificato un errore. L'operazione non è stata eseguita: " & ex.Message)
    EseguiComandoSQL = -1
    Finally
    MyQuery.Dispose()
    MyQuery = Nothing
    End Try
     
    End Function
    
    ℹ️ Leggi di più su alextyx ...

  6. #6
    L'avatar di pijo1971
    pijo1971 non è in linea Novello
    dunque,
    ho provato a copiare la routine ma ho un problema sui comandi:

    OleDb.OleDbCommand
    CommandType.Text

    di quale libreria fanno parte?

    comunque, dalla mia poca esperienza, mi sembra che queste istruzioni vanno bene quando si crea un applicazione PC based... nel caso di una applicazione PPC non sono riutilizzabili.. basta vedere le poche librerie che si possono aggiungere nei reference.

    per tornare al problema della connessione, io uso la stessa connessione utilizzata per creare la tabella, ovvero


    conn = New Data.SqlServerCe.SqlCeConnection(connStr)
    conn.Open()

    Dim cmd As Data.SqlServerCe.SqlCeCommand = conn.CreateCommand()
    l' unica differenza `e che il cmd.commandtext contiene un' istruzione insert...
    peccato che dopo aver eseguito la query non mi trovo i dati nel DB...

    ciao,
    Luigi
    Ultima modifica di pijo1971; 19-10-2006 08:07 
    ℹ️ Leggi di più su pijo1971 ...

  7. #7
    L'avatar di alextyx
    alextyx non è in linea Moderatore Globale
    comunque, dalla mia poca esperienza, mi sembra che queste istruzioni vanno bene quando si crea un applicazione PC based... bnel caso di una applicazione PPC non sono riutilizzabili.. basta vede le poche librerie che si possono aggiungere nei reference.
    Eh, sì...nel tuo caso sicuramente intervengono dei limiti diversi!
    ℹ️ Leggi di più su alextyx ...

  8. #8
    L'avatar di pijo1971
    pijo1971 non è in linea Novello
    dunque... ho fatto qualche altra scoperta.

    Il comando
    cmd.CommandText = "INSERT INTO myTable (col1, col2) VALUES (5,'prova')"
    
    funziona correttamente, non mi va in errore (usando bene la funzionalità Try,Chatch,finally).

    Ho scoperto però che in relatà il record me lo aggiunge, e solo che non sono riuscito a visualizzarlo con il datagrid. pensavo bastasse aggiungere il db SDF nella sezione dei data source e di aggiungere un controllo datagrid collegato alla tabella del db sdf per verdere i dati.. ma a quanto sembra non è sufficiente (come nel collegamente in una applicazione per pc con db access).

    Mi sono accorto che i dati ci sono perchè ho spiato nel wizard il dataset e nel preview dei dati li vedo... non li vedo runtime

    c'ho da lavorare ancora un po' .....

    bye bye
    Ultima modifica di elisab; 17-10-2011 01:19 
    ℹ️ Leggi di più su pijo1971 ...

  9. #9
    L'avatar di alextyx
    alextyx non è in linea Moderatore Globale

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Risposte: 1
    Ultimo Post: 25-06-2015, 09:14
  2. Database dove documentarsi
    Da imbranato nel forum Pausa caffè
    Risposte: 4
    Ultimo Post: 20-05-2012, 08:37
  3. Database dove documentarsi
    Da imbranato nel forum Visual Basic .Net
    Risposte: 2
    Ultimo Post: 19-05-2012, 09:10
  4. Dove trovo un database TAG mp3 su internet?
    Da dedosk8 nel forum Altri linguaggi e strumenti
    Risposte: 1
    Ultimo Post: 06-02-2008, 21:55
  5. Dove posso trovare dei Database??
    Da mikeee nel forum Altri linguaggi e strumenti
    Risposte: 4
    Ultimo Post: 02-04-2006, 12:45