首頁 > 資料庫 > mysql教程 > 如何在 C# 中使用參數化查詢從 SQL Server 資料庫檢索資料?

如何在 C# 中使用參數化查詢從 SQL Server 資料庫檢索資料?

Patricia Arquette
發布: 2024-12-29 16:12:11
原創
891 人瀏覽過

How to Retrieve Data from a SQL Server Database in C# Using Parameterized Queries?

在C# 中從SQL Server 資料庫擷取資料

要在C# 中從SQL Server 資料庫擷取數據,您可以使用SqlConnection,SqlCommand和SqlDataReader 物件。實現此目的的方法如下:

  1. 建立與資料庫的連線:

    SqlConnection con = new SqlConnection("Data Source=.
    Initial Catalog=domain;
    Integrated Security=True");
    con.Open();
    登入後複製
  2. 建立一個Sql指令物件:

    SqlCommand cmd = new SqlCommand("Select * from tablename", con);
    登入後複製
  3. 執行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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板