C# で SQL Server データベースからデータを取得する
C# で SQL Server データベースからデータを取得するには、SqlConnection を使用できます。 SqlCommand オブジェクトと SqlDataReader オブジェクト。これを実現する方法は次のとおりです:
データベースへの接続を確立します:
SqlConnection con = new SqlConnection("Data Source=. Initial Catalog=domain; Integrated Security=True"); con.Open();
SQLコマンドを作成するオブジェクト:
SqlCommand cmd = new SqlCommand("Select * from tablename", con);
Sql コマンドを実行:
using (SqlDataReader reader = cmd.ExecuteReader()) { // Iterate over the results and retrieve values while (reader.Read()) { // Get values from the current row } }
ただし、コードはSQLクエリをパラメータ化していないため、質問に記載されている機能は機能しません。これにより、コードが SQL インジェクション攻撃に対して脆弱になります。これを修正するには、パラメータ化されたクエリを使用します。
cmd.CommandText = "select * from tablename where firstname = @firstName"; cmd.Parameters.AddWithValue("@firstName", textBox1.Text);
データベースからデータを取得し、ユーザー定義のオブジェクトを設定する、より完全なメソッドの例を次に示します。
public Person GetPerson(string firstName) { var con = ConfigurationManager.ConnectionStrings["Yourconnection"].ToString(); using (SqlConnection myConnection = new SqlConnection(con)) { string oString = "Select * from Employees where FirstName=@fName"; SqlCommand oCmd = new SqlCommand(oString, myConnection); oCmd.Parameters.AddWithValue("@Fname", fName); myConnection.Open(); using (SqlDataReader oReader = oCmd.ExecuteReader()) { while (oReader.Read()) { Person matchingPerson = new Person { firstName = oReader["FirstName"].ToString(), lastName = oReader["LastName"].ToString(), }; return matchingPerson; } } } return null; // If no person found }
これを使用するにはメソッドを使用する場合は、firstName パラメーターを使用してこのメソッドを呼び出し、返された Person オブジェクトのプロパティをテキストボックスに入力できます。
以上がパラメーター化されたクエリを使用して C# で SQL Server データベースからデータを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。