sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan henter man data fra en SQL Server-database i C#?

 public Person SomeMethod(string fName) { var con =ConfigurationManager.ConnectionStrings["Din forbindelse"].ToString(); Person matchingPerson =ny person(); ved at bruge (SqlConnection myConnection =new SqlConnection(con)) { string oString ="Vælg * fra medarbejdere hvor [email protected]"; SqlCommand oCmd =new SqlCommand(oString, myConnection); oCmd.Parameters.AddWithValue("@Fname", fName); myConnection.Open(); ved hjælp af (SqlDataReader oReader =oCmd.ExecuteReader()) { while (oReader.Read()) { matchingPerson.firstName =oReader["FirstName"].ToString(); matchingPerson.lastName =oReader["Efternavn"].ToString(); } myConnection.Close(); } } returner matchingPerson; } 

Nogle ting at bemærke her:Jeg brugte en parametriseret forespørgsel, som gør din kode mere sikker. Den måde, du laver select-sætningen på med "hvor x ="+ Textbox.Text +"" del åbner dig for SQL-injektion.

Jeg har ændret dette til:

 "Vælg * fra medarbejdere hvor [email protected]" oCmd.Parameters.AddWithValue("@fname", fName);  

Så hvad denne kodeblok skal gøre er:

Udfør en SQL-sætning mod din database for at se, om der er nogle fornavne, der matcher det, du har angivet. Hvis det er tilfældet, vil denne person blive gemt i et Person-objekt (se nedenfor i mit svar for klassen). ikke matcher, vil egenskaberne for Person-objektet være null .

Jeg ved selvfølgelig ikke helt, hvad du prøver at gøre, så der er et par ting at være opmærksom på:Når der er mere end 1 personer med et matchende navn, vil kun den sidste blive gemt og returneret til dig. ønsker at kunne gemme disse data, kan du tilføje dem til en Liste .

Personklasse for at gøre det renere:

public class Person { public string firstName { get; sæt; } offentlig streng efternavn { get; sæt; } }

Nu for at kalde metoden:

Person x =SomeMethod("John"); 

Du kan derefter udfylde dine tekstbokse med værdier, der kommer fra Person-objektet som sådan:

txtLastName.Text =x.LastName; 


  1. Sådan returneres forespørgselsresultater som en kommasepareret liste i SQL Server – STRING_AGG()

  2. Forbedring af top/top faldende medianløsning

  3. ændre tabel drop kolonne i Oracle database

  4. Er der en genvej til SELECT * FROM?