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;
}
ここで注意すべき点がいくつかあります。コードをより安全にするパラメーター化されたクエリを使用しました。 "where x = "+ Textbox.Text +""
を使用してselectステートメントを作成する方法 一部はSQLインジェクションにあなたを開きます。
これを次のように変更しました:
"Select * from Employees where [email protected]"
oCmd.Parameters.AddWithValue("@fname", fName);
したがって、このコードブロックが実行するのは次のとおりです。
データベースに対してSQLステートメントを実行して、指定したものと一致する名があるかどうかを確認します。その場合、その人はPersonオブジェクトに格納されます(クラスに関する以下の回答を参照してください)。一致しない場合、Personオブジェクトのプロパティはnull
になります 。
明らかに、あなたが何をしようとしているのか正確にはわからないので、注意すべき点がいくつかあります。名前が一致する人が1人以上いる場合は、最後の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;