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;