sql >> Database >  >> RDS >> Sqlserver

Hoe gegevens ophalen uit een SQL Server-database in C#?

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

            Person matchingPerson = new Person();
            using (SqlConnection myConnection = new SqlConnection(con))
            {
                string oString = "Select * from Employees where [email protected]";
                SqlCommand oCmd = new SqlCommand(oString, myConnection);
                oCmd.Parameters.AddWithValue("@Fname", fName);           
                myConnection.Open();
                using (SqlDataReader oReader = oCmd.ExecuteReader())
                {
                    while (oReader.Read())
                    {    
                        matchingPerson.firstName = oReader["FirstName"].ToString();
                        matchingPerson.lastName = oReader["LastName"].ToString();                       
                    }

                    myConnection.Close();
                }               
            }
            return matchingPerson;
        }

Enkele dingen om hier op te merken:ik heb een geparametriseerde query gebruikt, waardoor uw code veiliger is. De manier waarop u de select-opdracht maakt met de "where x = "+ Textbox.Text +"" deel opent u voor SQL-injectie.

Ik heb dit veranderd in:

  "Select * from Employees where [email protected]"
  oCmd.Parameters.AddWithValue("@fname", fName);  

Dus wat dit codeblok gaat doen is:

Voer een SQL-instructie uit op uw database om te zien of er voornamen zijn die overeenkomen met de voornamen die u hebt opgegeven. Als dat het geval is, wordt die persoon opgeslagen in een Persoon-object (zie hieronder in mijn antwoord voor de klas). geen overeenkomst is, zijn de eigenschappen van het Person-object null .

Ik weet natuurlijk niet precies wat je probeert te doen, dus er zijn een paar dingen waar je op moet letten:Als er meer dan 1 persoon is met een overeenkomende naam, wordt alleen de laatste bewaard en aan je teruggestuurd. deze gegevens wilt kunnen opslaan, kunt u ze toevoegen aan een List<Person> .

Persoonsklasse om het schoner te maken:

 public class Person
    {
            public string firstName { get; set; }
            public string lastName { get; set; }
    }

Om nu de methode aan te roepen:

Person x = SomeMethod("John");

U kunt dan uw tekstvakken vullen met waarden die afkomstig zijn van het Persoon-object als volgt:

txtLastName.Text = x.LastName;


  1. Hoe het percentage van twee kolommen in MySQL te berekenen

  2. Percona-distributie voor PostgreSQL implementeren voor hoge beschikbaarheid

  3. Update met parameter met behulp van de permanente bibliotheek van de kamer

  4. Opnieuw ordenen/reset auto increment primaire sleutel