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;
}
Kilka rzeczy, na które warto zwrócić uwagę:użyłem sparametryzowanego zapytania, dzięki czemu Twój kod jest bezpieczniejszy. Sposób, w jaki tworzysz instrukcję select z "where x = "+ Textbox.Text +""
część otwiera cię na wstrzyknięcie SQL.
Zmieniłem to na:
"Select * from Employees where [email protected]"
oCmd.Parameters.AddWithValue("@fname", fName);
Więc to, co zrobi ten blok kodu, to:
Wykonaj instrukcję SQL dla swojej bazy danych, aby sprawdzić, czy jakieś tam są jakieś imiona pasujące do podanego przez Ciebie. Jeśli tak jest, ta osoba będzie przechowywana w obiekcie Person (patrz poniżej w mojej odpowiedzi dla klasy). nie ma dopasowania, właściwości obiektu Person będą null
.
Oczywiście nie wiem dokładnie, co próbujesz zrobić, więc jest kilka rzeczy, na które należy zwrócić uwagę:Gdy jest więcej niż 1 osoba z pasującym nazwiskiem, tylko ostatnia zostanie zapisana i zwrócona do Ciebie. chcesz mieć możliwość przechowywania tych danych, możesz dodać je do List<Person>
.
Klasa osoby, aby była czystsza:
public class Person
{
public string firstName { get; set; }
public string lastName { get; set; }
}
Teraz wywołaj metodę:
Person x = SomeMethod("John");
Następnie możesz wypełnić pola tekstowe wartościami pochodzącymi z obiektu Person w następujący sposób:
txtLastName.Text = x.LastName;