Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di JAEP
    Registrato dal
    Jan 2004
    residenza
    Treviso
    Messaggi
    421

    [C#] Errore nell'istruzione INSERT

    Salve,
    sto cominciando adesso a muovere i primi passi con C#. Ho fatto un piccolo esercizietto nel quale vi è il seguente metodo:

    codice:
    public static void GestioneUtente(string nome, string cognome, string login, string pwd, int operazione) {
       // Inserisci
       if(operazione==1) {
          OleDbCommand cmd = new OleDbCommand("INSERT INTO Contatto (Nome, Cognome, Login, Password) VALUES(?,?,?,?)",conn);
          
          cmd.Parameters.Add("@nome", nome);
          cmd.Parameters.Add("@cognome", cognome);
          cmd.Parameters.Add("@login", login);
          cmd.Parameters.Add("@password", pwd);
          cmd.ExecuteNonQuery();
       }
    
       if(operazione==2) {
          OleDbCommand cmd = new OleDbCommand("DELETE FROM Contatto WHERE login='" + login + "' AND password='" + pwd + "'");
          cmd.ExecuteNonQuery();
        }
    }
    Adesso, se richiamo l'operazione 1 (inserimento), il compilatore mi ritorna un errore di sintassi nell'istruzione INSERT INTO (ma dove?????).

    Se richiamo l'operazione 2 (cancellazione), il compilatore mi ritorna il seguente errore:
    Connection property has not been initialized

    Che significa???

    Un'altra domanda. Questa classe ha pure un altro metodo, Connetti, che viene richiamata dalla classe di test in questo modo:

    codice:
    Database.Connetti(@"C:\Documents and Settings\JAEP\Documenti\SharpDevelop Projects\Database\database.mdb");
    Perché devo mettere la chicciola????

    Grazie mille

  2. #2
    C# nel subforum (.NET Framework), please.
    ...Terrible warlords, good warlords, and an english song

  3. #3
    Utente di HTML.it L'avatar di JAEP
    Registrato dal
    Jan 2004
    residenza
    Treviso
    Messaggi
    421
    Originariamente inviato da Johnny_Depp
    C# nel subforum (.NET Framework), please.
    ok

    dimenticavo...come database uso Access...

  4. #4
    Utente di HTML.it L'avatar di biste
    Registrato dal
    Apr 2001
    Messaggi
    877
    Password è una parola chiave riservata del provider: per usarla nella query devi racchiuderla tra [ ]

    Login non mi sembra, ma per sicurezza potresti mettere le parentesi anche lì

    HTH
    UGIdotNET
    Microsoft .NET MCAD
    C++, C#, VB6, VB.NET, ASP, ASP.NET
    SQL Server 2000

  5. #5
    Facendo come mi ha detto, sono riuscito a inserire un record, ma ho ancora lo stesso problema con la cancellazione, infatti mi viene restituito ancora questo errore:

    Connection property has not been initialized

    Grazie

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,475
    Originariamente inviato da Matrix_denny
    mi viene restituito ancora questo errore:
    Connection property has not been initialized
    Non hai assegnato la connessione su cui appoggiarsi (di tipo OleDbConnection) al costruttore del comando OleDbCommand attraverso il quale esegui l'istruzione di cancellazione.

    Se non desideri passare tale riferimento direttamente nel costruttore, puoi impostarlo dopo la creazione dell'oggetto, ma prima della chiamata a ExecuteNonQuery, attraverso la proprietà Connection.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    Utente di HTML.it L'avatar di JAEP
    Registrato dal
    Jan 2004
    residenza
    Treviso
    Messaggi
    421
    Sono contento che non sono l'unico ad avere lo stesso problema....

    Personalmente, io ho creato un metodo chiamato Connetti, il cui codice è il seguente:

    codice:
    public static void Connetti(string strPath) {
      try {
        conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strPath);
       conn.Open();
    }
       catch(OleDbException ex) {
          Console.WriteLine("Errore: {0}", ex.Message);
       }
    }
    e questo metodo viene richiamato PRIMA di chiamare il metodo GestioneUtente.

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.