none
requête sql RRS feed

  • Question

  • bonsoir,

    je voudrais utiliser des requêtes sql en c# mais je ne sais pas comment les syntaxes se font exactement en c# .

    car les syntaxes réel en sql subisse des modification lorqu'elles passent en c#.

    je prend le cas de :

    INSERT INTO table (nom_colonne_1, nom_colonne_2, ... VALUES ('valeur 1', 'valeur 2', ...)

    qui devient en c#

    Insert into Formulaire (Nom, Prenom, Age, [Lieu de naissance], Service) values ('" + textBox1.Text + "','" + textBox2.Text + "','");";

    a partir de cela comment retranscrire les requetes sql du genre:

    delete, update, select * from table where = condition

    merci de votre aide



    Cardinal dev

    mercredi 9 mars 2016 16:06

Réponses

  • Bonjour, 

    Les requêtes SQL en C# ne sont que des chaines de caractères, à vous donc de les réaliser correctement. 

    Ce qu'il vous manque peut être serait une manière de réaliser des requêtes mieux formatées. 

    Essayez par exemple d'utiliser String.Format.

    Cette fonction permet de pré-formater une chaîne de caractères en lui passant des paramètre. 

    Ex: 

    Decimal pricePerOunce = 17.36m;
    String s = String.Format("The current price is {0} per ounce.",
                             pricePerOunce);
    // Result: The current price is 17.36 per ounce.
    Plus d'infos sur : https://msdn.microsoft.com/fr-fr/library/system.string.format(v=vs.110).aspx

    Ensuite, je peux vous conseiller plutôt d'utiliser des paramètres SQL lors de vos requêtes. Cela vous évitera bien des soucis, dont les risques d'injection SQL.

    Ex : 

    int result;
    
    using (SqlConnection conn = new SqlConnection(connectionString)) {
    
    	String commandText = "Select Count([CourseID]) FROM [MySchool].[dbo].[Course] Where Year=@Year";
    
    	using (SqlCommand cmd = new SqlCommand(commandText, conn)) {
    		SqlParameter parameterYear = new SqlParameter("@Year", SqlDbType.Int);
    		parameterYear.Value = year;
    		
    		cmd.CommandType = commandType;
    		cmd.Parameters.AddRange(parameters);
    		
    		conn.Open();
    		
    		result = (int)cmd.ExecuteScalar();
    	}
    }

    Plus d'infos sur : https://msdn.microsoft.com/fr-fr/library/system.data.sqlclient.sqlcommand(v=vs.110).aspx

    Cordialement, 


    Kevin BEAUGRAND, Modis FRANCE
    Merci de bien vouloir "Marquer comme réponse", les réponses qui ont résolu votre problème.

    jeudi 10 mars 2016 08:27

Toutes les réponses

  • Bonjour, 

    Les requêtes SQL en C# ne sont que des chaines de caractères, à vous donc de les réaliser correctement. 

    Ce qu'il vous manque peut être serait une manière de réaliser des requêtes mieux formatées. 

    Essayez par exemple d'utiliser String.Format.

    Cette fonction permet de pré-formater une chaîne de caractères en lui passant des paramètre. 

    Ex: 

    Decimal pricePerOunce = 17.36m;
    String s = String.Format("The current price is {0} per ounce.",
                             pricePerOunce);
    // Result: The current price is 17.36 per ounce.
    Plus d'infos sur : https://msdn.microsoft.com/fr-fr/library/system.string.format(v=vs.110).aspx

    Ensuite, je peux vous conseiller plutôt d'utiliser des paramètres SQL lors de vos requêtes. Cela vous évitera bien des soucis, dont les risques d'injection SQL.

    Ex : 

    int result;
    
    using (SqlConnection conn = new SqlConnection(connectionString)) {
    
    	String commandText = "Select Count([CourseID]) FROM [MySchool].[dbo].[Course] Where Year=@Year";
    
    	using (SqlCommand cmd = new SqlCommand(commandText, conn)) {
    		SqlParameter parameterYear = new SqlParameter("@Year", SqlDbType.Int);
    		parameterYear.Value = year;
    		
    		cmd.CommandType = commandType;
    		cmd.Parameters.AddRange(parameters);
    		
    		conn.Open();
    		
    		result = (int)cmd.ExecuteScalar();
    	}
    }

    Plus d'infos sur : https://msdn.microsoft.com/fr-fr/library/system.data.sqlclient.sqlcommand(v=vs.110).aspx

    Cordialement, 


    Kevin BEAUGRAND, Modis FRANCE
    Merci de bien vouloir "Marquer comme réponse", les réponses qui ont résolu votre problème.

    jeudi 10 mars 2016 08:27
  • Merci pour votre aide.

    Cardinal dev

    jeudi 10 mars 2016 08:40