Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como recuperar dados de um banco de dados SQL Server em 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;
        }

Algumas coisas a serem observadas aqui:usei uma consulta parametrizada, o que torna seu código mais seguro. A maneira como você está fazendo a instrução select com o "where x = "+ Textbox.Text +"" parte abre você para injeção de SQL.

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

Então, o que este bloco de código vai fazer é:

Execute uma instrução SQL em seu banco de dados, para ver se há algum primeiro nome correspondente ao que você forneceu. Se for esse o caso, essa pessoa será armazenada em um objeto Person (veja abaixo na minha resposta para a classe). Se houver não corresponder, as propriedades do objeto Person serão null .

Obviamente eu não sei exatamente o que você está tentando fazer, então há algumas coisas para prestar atenção:Quando houver mais de 1 pessoa com um nome correspondente, apenas a última será salva e devolvida a você. quiser armazenar esses dados, você pode adicioná-los a uma List<Person> .

Classe pessoa para torná-lo mais limpo:
 public class Person
    {
            public string firstName { get; set; }
            public string lastName { get; set; }
    }

Agora para chamar o método:
Person x = SomeMethod("John");

Você pode então preencher suas caixas de texto com valores vindos do objeto Person da seguinte forma:
txtLastName.Text = x.LastName;