Maison >base de données >tutoriel mysql >Comment récupérer des données d'une base de données SQL Server en C# à l'aide de requêtes paramétrées ?

Comment récupérer des données d'une base de données SQL Server en C# à l'aide de requêtes paramétrées ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-29 16:12:11898parcourir

How to Retrieve Data from a SQL Server Database in C# Using Parameterized Queries?

Récupération de données d'une base de données SQL Server en C#

Pour récupérer des données d'une base de données SQL Server en C#, vous pouvez utiliser SqlConnection, Objets SqlCommand et SqlDataReader. Voici comment y parvenir :

  1. Établir une connexion à la base de données :

    SqlConnection con = new SqlConnection("Data Source=.
    Initial Catalog=domain;
    Integrated Security=True");
    con.Open();
  2. Créer une commande SQL Objet :

    SqlCommand cmd = new SqlCommand("Select * from tablename", con);
  3. Exécutez la commande SQL :

    using (SqlDataReader reader = cmd.ExecuteReader())
    {
      // Iterate over the results and retrieve values
      while (reader.Read())
      {
     // Get values from the current row
      }
    }

Cependant, le code que vous fourni dans votre question ne fonctionne pas car vous ne paramétrez pas votre requête SQL. Cela rend votre code vulnérable aux attaques par injection SQL. Pour résoudre ce problème, utilisez des requêtes paramétrées :

cmd.CommandText = "select * from tablename where firstname = @firstName";
cmd.Parameters.AddWithValue("@firstName", textBox1.Text);

Voici un exemple d'une méthode plus complète qui récupère les données d'une base de données et remplit les objets définis par l'utilisateur :

public Person GetPerson(string firstName)
{
  var con = ConfigurationManager.ConnectionStrings["Yourconnection"].ToString();

  using (SqlConnection myConnection = new SqlConnection(con))
  {
    string oString = "Select * from Employees where FirstName=@fName";
    SqlCommand oCmd = new SqlCommand(oString, myConnection);
    oCmd.Parameters.AddWithValue("@Fname", fName);
    myConnection.Open();

    using (SqlDataReader oReader = oCmd.ExecuteReader())
    {
      while (oReader.Read())
      {
        Person matchingPerson = new Person
        {
          firstName = oReader["FirstName"].ToString(),
          lastName = oReader["LastName"].ToString(),
        };

        return matchingPerson;
      }
    }
  }

  return null; // If no person found
}

Pour utiliser ceci méthode, vous pouvez l'appeler avec un paramètre firstName et remplir vos zones de texte avec les propriétés de l'objet Person renvoyé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn