Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да извлека данни от база данни на SQL Server в 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;
        }

Тук трябва да отбележа няколко неща:използвах параметризирана заявка, която прави кода ви по-безопасен. Начинът, по който правите оператора select с "where x = "+ Textbox.Text +"" част ви отваря за SQL инжекция.

Промених това на:

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

Така че това, което този блок код ще направи, е:

Изпълнете SQL оператор срещу вашата база данни, за да видите дали има някакви имена, съответстващи на това, което сте предоставили. Ако случаят е такъв, този човек ще бъде съхранен в обект Person (вижте по-долу в моя отговор за класа). Ако има не съвпада, свойствата на обекта Person ще бъдат null .

Очевидно не знам точно какво се опитвате да направите, така че трябва да обърнете внимание на няколко неща:Когато има повече от 1 души със съвпадащо име, само последният ще бъде запазен и върнат при вас. Ако искате да можете да съхранявате тези данни, можете да ги добавите към List<Person> .

Клас на човек, за да стане по-чист:

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

Сега да извикаме метода:

Person x = SomeMethod("John");

След това можете да попълните текстовите си полета със стойности, идващи от обекта Person, както следва:

txtLastName.Text = x.LastName;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да се покаже дата в немски формат в SQL Server (T-SQL)

  2. TSQL Опитайте/Уловете в рамките на транзакция или обратно?

  3. SQL Server 2008 не може да влезе с новосъздадения потребител

  4. Как да създадете централна заявка в sql сървър без агрегатна функция

  5. Защо и кога трябва да използвам SPARSE COLUMN? (SQL SERVER 2008)