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;
}
Zde je třeba poznamenat několik věcí:Použil jsem parametrizovaný dotaz, díky kterému je váš kód bezpečnější. Způsob, jakým provádíte příkaz select pomocí "where x = "+ Textbox.Text +""
část vám otevře SQL injekci.
Změnil jsem to na:
"Select * from Employees where [email protected]"
oCmd.Parameters.AddWithValue("@fname", fName);
Tento blok kódu tedy udělá:
Proveďte příkaz SQL proti své databázi, abyste zjistili, zda existují nějaká křestní jména odpovídající tomu, které jste zadali. Pokud je tomu tak, bude tato osoba uložena v objektu Osoba (viz níže v mé odpovědi pro třídu). se neshoduje, vlastnosti objektu Osoba budou null
.
Je zřejmé, že přesně nevím, o co se snažíte, takže je třeba věnovat pozornost několika věcem:Když je více než 1 osoba se shodným jménem, uloží se a vrátí se vám pouze ta poslední. chcete mít možnost tato data ukládat, můžete je přidat do List<Person>
.
Třída osoby, aby to bylo čistší:
public class Person
{
public string firstName { get; set; }
public string lastName { get; set; }
}
Nyní zavolejte metodu:
Person x = SomeMethod("John");
Potom můžete vyplnit svá textová pole hodnotami pocházejícími z objektu Osoba takto:
txtLastName.Text = x.LastName;