在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);
執行SqlCommand:
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中文網其他相關文章!