Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    c# Problemi query per salvare su DB Sql

    Ciao,
    ho un problema con il salvataggio di dati su database sql con query parametrica.
    in pratica ho 3 valori presi da una combo e due textbox.Facendo debug i campi vengono presi,tuttavia ho un errore quando cerco di salvare su db.E' un problema di query

    Questo lo spezzone del mio codice :

    string cognome = Convert.ToString(Surname.Text);
    string nome = Convert.ToString(Name.Text);
    string QUALIFICA_AZIENDALE = Convert.ToString(ddlCountry.SelectedValue);
    string input = "(" + cognome + "," + nome + "," + QUALIFICA_AZIENDALE + ")";
    command.CommandText = "INSERT INTO [dbo].[inserimento]([cognome],[nome],[QUALIFICA_AZIENDALE])VALUES" + input;
    command.ExecuteNonQuery();
    transaction.Commit();
    Console.WriteLine("all records are written to database.");

    ho provato a testare la query su sql e per memorizzare i dati è necessario mettere gli apici ,quindi andrebbe composta cosi :

    INSERT INTO [CompetenzeFF].[dbo].[inserimento]([cognome],[nome],[QUALIFICA_AZIENDALE])VALUES('a','a','Accounting Manager')

    Il problema è che se inserisco gli apici nella query della mia classe mi da errori..Suggerimenti?

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Perchè indichi il [dbo] al centro tra 2 stringhe?
    codice:
    INSERT INTO [CompetenzeFF].[dbo].[inserimento]
    sei sicuro che vada bene? A me non sembra...

    In ogni caso, prima di eseguire l' ExecuteNonQuery, verifica la stringa SQL che passi al Command, esempio:

    codice:
    string sSQL  = "INSERT INTO [dbo].[inserimento]([cognome],[nome],[QUALIFICA_AZIENDALE])VALUES" + input;
    e leggi il contenuto della variabile sSQL e verifica se è tutto a posto.

    Suggerimento
    Perchè non usi i Parametri? Semplificano la vita..., e di molto!


  3. #3
    ciao,
    in debug i parametri vengono registrati correttamente nella stringa input.
    Il problema sono i maledetti apici,in particolare la stringa si compone cosi (a,aa,aaa) invece di ('a','aa','aaa')e quindi sql si incazza e non mi fa scrivere.

    (questo l'output del debug
    sSQL = "INSERT INTO [dbo].[inserimento]([cognome],[nome],[QUALIFICA_AZIENDALE])VALUES(aa,aa,3- EMPLOYEES)" )

    Volevo usare i parametri,ma ho letto un sacco di forum e sinceramente non ho capito granchè,putroppo sono ancora niubbo conc#

    ps:INSERT INTO [CompetenzeFF].[dbo].[inserimento] è corretta,l'ho provato sull'SQL query

  4. #4
    è normale che si comporti cosi, hai notato:

    codice:
    string input = "(" + cognome + "," + nome + "," + QUALIFICA_AZIENDALE + ")";
    io non ho visto nessun carattere che specifichi gli apici, dovrebbe essere corretto cosi:
    codice:
    string input = "('" + cognome + "','" + nome + "','" + QUALIFICA_AZIENDALE + "')";

  5. #5
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da jenapliskin1980
    ciao,
    in debug i parametri vengono registrati correttamente nella stringa input.
    Che senso ha questa frase? Per me nessuno.

    Originariamente inviato da jenapliskin1980
    Il problema sono i maledetti apici,in particolare la stringa si compone cosi (a,aa,aaa) invece di ('a','aa','aaa')e quindi sql si incazza e non mi fa scrivere.
    Ecco perchè la frase sopra non ha senso.

    Originariamente inviato da jenapliskin1980
    (questo l'output del debug
    sSQL = "INSERT INTO [dbo].[inserimento]([cognome],[nome],[QUALIFICA_AZIENDALE])VALUES(aa,aa,3- EMPLOYEES)" )
    Scusa, ma mi pare ovvio che gli apici li devi mettere tu!

    Originariamente inviato da jenapliskin1980
    Volevo usare i parametri,ma ho letto un sacco di forum e sinceramente non ho capito granchè,
    Se speri di imparare sui forum, stai fresco.
    Le basi si imparano studiando, non di certo sui forum. Sui forum puoi avere indicazioni, dritte e vari suggerimenti ma poi devi studiare, approfondire, documentarti.
    Questo può aiutarti:
    http://www.csharp-station.com/tutori.../lesson06.aspx
    ma in rete ce ne sono un sacco di tutorial, ovviamente non dimenticando la principale fonte che è la GUIDA!!!

    Originariamente inviato da jenapliskin1980
    putroppo sono ancora niubbo conc#
    Cosa vuol dire? Tutti lo siamo stati, ma poi studiando si impara.
    Più studi, più impari. Meno studi, meno impari.


  6. #6
    grazie mille!ora funziona.
    Adesso cercherò di cambiare l'inserimento utilizzando i parametri!

  7. #7
    Quoto gibra,
    un'altro consiglio, cerca di capire bene la differenza tra un richiamo diretto della tabella ed un richiamo esteso (cioè quello che hai usato tu [nomedb].[proprietario].[oggetto]), ciò in futuro potrebbe crearti non pochi problemi

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.