sql >> データベース >  >> RDS >> Sqlserver

C#でSQL Serverデータベースからデータを取得するにはどうすればよいですか?

     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;
    


    1. pg_dumpとpg_dumpallを使用してPostgreSQLをバックアップする

    2. MySQLのforループの例

    3. 接続エラー時にODP.NET接続プールをクリアするにはどうすればよいですか?

    4. イミディエイトウィンドウの高速でダーティなForループ