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;
}
Några saker att notera här:Jag använde en parametriserad fråga, vilket gör din kod säkrare. Sättet du gör select-satsen med "where x ="+ Textbox.Text +""
del öppnar dig för SQL-injektion.
Jag har ändrat detta till:
"Select * from Employees where [email protected]"
oCmd.Parameters.AddWithValue("@fname", fName);
Så vad detta kodblock kommer att göra är:
Kör en SQL-sats mot din databas för att se om det finns några förnamn som matchar det du angav. Om så är fallet kommer den personen att lagras i ett Person-objekt (se nedan i mitt svar för klassen). inte matchar, kommer egenskaperna för personobjektet att vara null
.
Jag vet uppenbarligen inte exakt vad du försöker göra, så det finns några saker att vara uppmärksam på:När det finns fler än 1 personer med ett matchande namn, kommer bara den sista att sparas och returneras till dig. vill kunna lagra dessa data kan du lägga till dem i en lista
Personklass för att göra det renare:
public class Person
{
public string firstName { get; set; }
public string lastName { get; set; }
}
För att nu anropa metoden:
Person x = SomeMethod("John");
Du kan sedan fylla dina textrutor med värden som kommer från personobjektet så här:
txtLastName.Text = x.LastName;