Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126

    Come funzionano i Parameters per passare i valori in una query sql?

    Ciao, ho questo codice:
    codice:
    OdbcConnection conn = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver};server=localhost;Database=maximotogest;uid=root;pwd=;option=3");
    OdbcCommand cmd = new OdbcCommand("INSERT INTO Clienti(Nome,Cognome) VALUES("+cnome.Text+" ,"+ ccognome.Text +")",conn);	
    	conn.Open();
    			cmd.ExecuteNonQuery();			
    			conn.Close();
    Che fortunatamente e grazie all'aiuto di alcuni di voi funziona egregiamente. Mi è sembrato di capire però che invece di scrivere i campi di testo all'interno della query, posso passare dei valori tramite i Parameters.. come funzionano?
    Voglio l'alt+s anche per FF

  2. #2

    Re: Come funzionano i Parameters per passare i valori in una query sql?

    Originariamente inviato da dops
    Ciao, ho questo codice:
    prima di continuare ti inviterei (umh... ma come parlo bene ) a valutare l'ipotesi di cambiare dataprovider con uno ad esempio specifico per il db che utilizzi es. se utilizzi mysql http://www.bytefx.com/Downloads.aspx
    OdbcCommand cmd = new OdbcCommand("INSERT INTO Clienti(Nome,Cognome) VALUES("+cnome.Text+" ,"+ ccognome.Text +")",conn);
    per utilizzare i parametri potresti cambiare la stringa sql in
    codice:
    INSERT INTO Clienti(Nome,Cognome) VALUES(? ,?)
    cmd.Parameters.Add("", OdbcType.VarChar).Value = "Ciccio"
    cmd.Parameters.Add("", OdbcType.VarChar).Value = "Mariano"
    pero' il codice e' da verificare perche' non ho mai usato odbc come dataprovider e la sintassi per i parametri e' leggermente diversa.
    Saluti a tutti
    Riccardo

  3. #3
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126

    Re: Re: Come funzionano i Parameters per passare i valori in una query sql?

    Originariamente inviato da riccardone
    prima di continuare ti inviterei (umh... ma come parlo bene ) a valutare l'ipotesi di cambiare dataprovider con uno ad esempio specifico per il db che utilizzi es. se utilizzi mysql http://www.bytefx.com/Downloads.aspx

    per utilizzare i parametri potresti cambiare la stringa sql in
    codice:
    INSERT INTO Clienti(Nome,Cognome) VALUES(? ,?)
    cmd.Parameters.Add("", OdbcType.VarChar).Value = "Ciccio"
    cmd.Parameters.Add("", OdbcType.VarChar).Value = "Mariano"
    pero' il codice e' da verificare perche' non ho mai usato odbc come dataprovider e la sintassi per i parametri e' leggermente diversa.
    OK grazie.. ma a che servono.. qual'è la differenza tra scrivere i campi nella query e quella di usare i parameters?
    Voglio l'alt+s anche per FF

  4. #4

    Re: Re: Re: Come funzionano i Parameters per passare i valori in una query sql?

    Originariamente inviato da dops
    ma a che servono..
    tra le altre cose, usando i parameters godi della tipizzazione per cui riesci difficilmente a prendere fisci per fiaschi (es scambiare stringhe con date o interi ecc.) e rendi piu' sicura l'applicazione togliendo la possibilita' di far passare del codice maligno che qualche utente fetentone potrebbe immettere (vedi sqlinjection).
    Saluti a tutti
    Riccardo

  5. #5
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126

    Re: Re: Re: Re: Come funzionano i Parameters per passare i valori in una query sql?

    Originariamente inviato da riccardone
    tra le altre cose, usando i parameters godi della tipizzazione per cui riesci difficilmente a prendere fisci per fiaschi (es scambiare stringhe con date o interi ecc.) e rendi piu' sicura l'applicazione togliendo la possibilita' di far passare del codice maligno che qualche utente fetentone potrebbe immettere (vedi sqlinjection).
    quindi per una maggiore sicurezza ?
    e se io faccio un controllo approfondito con i validatori?
    sai i campi sono parecchi.. una 20na..
    Voglio l'alt+s anche per FF

  6. #6
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    cacchio ho provato ad usare il provide che mi hai detto quindi ho fatto:
    codice:
    ...
    using System.ByteFX.Data.MySqlClient;
    ..
    		connstring = "Database=maximotogest;Data Source=localhost;User Id=root;Password=";
    		MySqlConnection conn = new MySqlConnection(connstring);
    		string query="INSERT INTO Clienti(Nome,Cognome) VALUES('"+cnome.Text+"' ,'"+ ccognome.Text +"')";
    		MySqlCommand cmd = new MysqlCommand(query);
    			cmd.Connection = conn;
    			conn.open();
    			cmd.ExecuteNonQuery();
    			cmd.Connection.Close();
    Ma visual studio mi dà un errore.. dice che ByteFx non esiste nel namespace..
    eppure la dll l'ho messa sotto c:\windows\system32
    Voglio l'alt+s anche per FF

  7. #7
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    ah.. ok adesso funziona.. ho messo le dll nella cartella bin e le ho referenziate in visual studio..
    Mi sorge un dubbio: quando ho referenziato le dll, ho pensato di referenziare quelle messe nella cartella bin, in modo tale che quando porterò i file sul pub ftp, non ci sarà bisogno di aver installato sulla macchina server quelle dll. Ho fatto bene? è giusta la mia riflessione?
    Poi un'altra cosa.. ma dove vengono referenziate le dll? ho provato nel file assembly.cs ma non c'è nulla sulle dll appena referenziate..
    illuminatemi
    Voglio l'alt+s anche per FF

  8. #8
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    cacchio.. non mi dà errori però non mi inserisce nulla nel database
    codice:
    		string	connstring = "Database=maximotogest;Data Source=localhost;User Id=root;Password=";
    		MySqlConnection conn = new MySqlConnection(connstring);
    		string query="INSERT INTO Clienti(Nome,Cognome) VALUES('"+cnome.Text+"' ,'"+ ccognome.Text +"')";
    		MySqlCommand cmd = new MySqlCommand(query);
    			cmd.Connection = conn;
    			conn.Open();
    			cmd.ExecuteNonQuery();
    			cmd.Connection.Close();
    Voglio l'alt+s anche per FF

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 © 2026 vBulletin Solutions, Inc. All rights reserved.