sql >> Databáze >  >> RDS >> Sqlserver

Jak načíst data z databáze SQL Server v 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;
        }

Zde je třeba poznamenat několik věcí:Použil jsem parametrizovaný dotaz, díky kterému je váš kód bezpečnější. Způsob, jakým provádíte příkaz select pomocí "where x = "+ Textbox.Text +"" část vám otevře SQL injekci.

Změnil jsem to na:

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

Tento blok kódu tedy udělá:

Proveďte příkaz SQL proti své databázi, abyste zjistili, zda existují nějaká křestní jména odpovídající tomu, které jste zadali. Pokud je tomu tak, bude tato osoba uložena v objektu Osoba (viz níže v mé odpovědi pro třídu). se neshoduje, vlastnosti objektu Osoba budou null .

Je zřejmé, že přesně nevím, o co se snažíte, takže je třeba věnovat pozornost několika věcem:Když je více než 1 osoba se shodným jménem, ​​uloží se a vrátí se vám pouze ta poslední. chcete mít možnost tato data ukládat, můžete je přidat do List<Person> .

Třída osoby, aby to bylo čistší:

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

Nyní zavolejte metodu:

Person x = SomeMethod("John");

Potom můžete vyplnit svá textová pole hodnotami pocházejícími z objektu Osoba takto:

txtLastName.Text = x.LastName;


  1. Hromadné vkládání datových souborů do SQL Serveru

  2. Jaké jsou rozdíly mezi INSERT a UPDATE v MySQL?

  3. Existuje v SQL Server funkce Max, která nabývá dvou hodnot jako Math.Max ​​v .NET?

  4. Načte návratové hodnoty pole pl/sql v jazyce Java