sql >> Databasteknik >  >> RDS >> Sqlserver

Hur hämtar man data från en SQL Server-databas i 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;
        }

Några saker att notera här:Jag använde en parametriserad fråga, vilket gör din kod säkrare. Sättet du gör select-satsen med "where x ="+ Textbox.Text +"" del öppnar dig för SQL-injektion.

Jag har ändrat detta till:

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

Så vad detta kodblock kommer att göra är:

Kör en SQL-sats mot din databas för att se om det finns några förnamn som matchar det du angav. Om så är fallet kommer den personen att lagras i ett Person-objekt (se nedan i mitt svar för klassen). inte matchar, kommer egenskaperna för personobjektet att vara null .

Jag vet uppenbarligen inte exakt vad du försöker göra, så det finns några saker att vara uppmärksam på:När det finns fler än 1 personer med ett matchande namn, kommer bara den sista att sparas och returneras till dig. vill kunna lagra dessa data kan du lägga till dem i en lista .

Personklass för att göra det renare:

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

För att nu anropa metoden:

Person x = SomeMethod("John");

Du kan sedan fylla dina textrutor med värden som kommer från personobjektet så här:

txtLastName.Text = x.LastName;


  1. Kartläggning av lokala säkerhetskontroller kontra stora molnleverantörer – Version 4.0

  2. Pyodbc - Datakällans namn hittades inte och ingen standarddrivrutin har angetts

  3. Effektiv övervakning av MySQL med SCUMM Dashboards:Del 3

  4. Problemuppsättning 1 – Identifiera enheter