Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pertanyaan berparameter dalam C# menggunakan SqlParameter

Pertanyaan berparameter dalam C# menggunakan SqlParameter

WBOY
WBOYasal
2024-02-18 22:02:07422semak imbas

Pertanyaan berparameter dalam C# menggunakan SqlParameter

Peranan dan penggunaan SqlParameter dalam C#

Dalam pembangunan C#, berinteraksi dengan pangkalan data adalah salah satu tugas biasa. Untuk memastikan keselamatan dan kesahihan data, kami selalunya perlu menggunakan pertanyaan berparameter untuk mengelakkan serangan suntikan SQL. SqlParameter ialah kelas dalam C# yang digunakan untuk membina pertanyaan berparameter Ia menyediakan cara yang selamat dan mudah untuk mengendalikan parameter dalam pertanyaan pangkalan data.

Peranan SqlParameter
Kelas SqlParameter digunakan terutamanya untuk menambah parameter pada pernyataan SQL. Fungsi utamanya adalah seperti berikut:

  1. Mencegah serangan suntikan SQL: Dengan menggunakan SqlParameter, kita boleh melepaskan nilai parameter terlebih dahulu dan memastikan bahawa apabila melaksanakan pertanyaan pangkalan data, nilai parameter tidak akan ditafsirkan sebagai sebahagian daripada pernyataan SQL .
  2. Meningkatkan prestasi: Dalam pertanyaan pangkalan data, rancangan pertanyaan biasanya cache pertanyaan untuk meningkatkan prestasi. Apabila menggunakan SqlParameter, pernyataan pertanyaan yang sama hanya perlu disusun sekali dan kemudian boleh digunakan berulang kali.
  3. Menyokong pelbagai jenis dan saiz data: SqlParameter menyokong pelbagai jenis data biasa, seperti rentetan, integer, tarikh, dll., dan saiz, ketepatan dan tempat perpuluhan parameter boleh ditetapkan mengikut keperluan.

Penggunaan SqlParameter
Di bawah kami menggunakan contoh untuk menunjukkan cara menggunakan SqlParameter untuk membina pertanyaan berparameter.

Andaikan kita mempunyai jadual bernama "Pekerja" yang mengandungi maklumat ID, nama dan gaji pekerja. Kami perlu menanyakan maklumat pekerja yang gajinya lebih besar daripada jumlah yang ditetapkan. Berikut ialah contoh kod menggunakan SqlParameter:

string queryString = "SELECT EmployeeID, FirstName, LastName FROM Employees WHERE Salary > @salary";
using (SqlConnection connection = new SqlConnection(connectionString))
{
    SqlCommand command = new SqlCommand(queryString, connection);
    command.Parameters.Add("@salary", SqlDbType.Decimal).Value = 5000; // 设置参数名称、类型和值

    connection.Open();
    SqlDataReader reader = command.ExecuteReader();

    while (reader.Read())
    {
        int employeeId = (int)reader["EmployeeID"];
        string firstName = reader["FirstName"].ToString();
        string lastName = reader["LastName"].ToString();

        Console.WriteLine($"Employee ID: {employeeId}, Name: {firstName} {lastName}");
    }

    reader.Close();
}

Dalam contoh di atas, kami mula-mula mencipta rentetan pertanyaan yang merangkumi nama parameter "@gaji". Kemudian, kami mencipta sambungan pangkalan data dan objek perintah pertanyaan menggunakan SqlConnection dan SqlCommand.

Seterusnya, kami menambah parameter pada arahan pertanyaan dengan memanggil kaedah command.Parameters.Add. Di sini kami menentukan nama, jenis dan nilai parameter. Dalam contoh ini, kami menggunakan SqlDbType.Decimal sebagai jenis parameter dan menetapkan nilai parameter kepada 5000. command.Parameters.Add方法,我们向查询命令中添加了一个参数。在这里,我们指定了参数的名称、类型和值。在这个例子中,我们使用SqlDbType.Decimal作为参数类型,并将参数值设置为5000。

最后,我们打开数据库连接,并执行查询命令。通过调用command.ExecuteReader

Akhir sekali, kami membuka sambungan pangkalan data dan melaksanakan arahan pertanyaan. Dapatkan hasil pertanyaan dengan memanggil command.ExecuteReader dan gunakan SqlDataReader untuk membaca hasil baris demi baris. Dalam gelung, kami mendapat ID dan nama setiap pekerja melalui nama lajur, dan mengeluarkannya ke konsol.


Ringkasan

Dengan menggunakan SqlParameter, kami boleh membina pertanyaan berparameter dengan berkesan, dengan itu meningkatkan keselamatan dan prestasi pertanyaan pangkalan data. Dengan menetapkan nama, jenis dan nilai parameter, kami boleh menambah parameter dengan mudah pada pernyataan SQL dan menghalang kemungkinan serangan suntikan SQL. Saya harap artikel ini akan membantu anda memahami peranan dan penggunaan SqlParameter dalam C#. 🎜

Atas ialah kandungan terperinci Pertanyaan berparameter dalam C# menggunakan SqlParameter. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn