Rumah > pangkalan data > tutorial mysql > Bolehkah C# SqlCommand Parameter Nama Lajur Tanpa Prosedur Tersimpan?

Bolehkah C# SqlCommand Parameter Nama Lajur Tanpa Prosedur Tersimpan?

Susan Sarandon
Lepaskan: 2024-12-21 14:29:10
asal
287 orang telah melayarinya

Can C# SqlCommand Parameterize Column Names Without Stored Procedures?

Parameter dalam SqlCommand: Alternatif untuk Parameterisasi Nama Lajur

Dalam C#, prosedur tersimpan bukanlah penyelesaian yang diingini untuk parameterisasi nama lajur dinamik. Timbul persoalan: bolehkah kita mencapainya tanpa menggunakan prosedur tersimpan?

Jawapan ringkasnya ialah tidak. SqlCommand tidak menyokong parameterisasi untuk nama lajur. Walau bagaimanapun, kami boleh membina pertanyaan secara dinamik pada masa jalan.

Untuk mengelakkan serangan suntikan, adalah penting untuk mengesahkan bahawa nama lajur input ("slot" dalam kes ini) diluluskan dan dijangka. Dengan mengambil kira perkara ini, kami boleh membina pertanyaan seperti berikut:

// TODO: verify that "slot" is an approved/expected value
SqlCommand command = new SqlCommand("SELECT [" + slot +
           "] FROM Users WHERE name=@name; ")
prikaz.Parameters.AddWithValue("name", name);
Salin selepas log masuk

Kaedah ini membolehkan kami meparameterkan nilai input seperti "@name" sambil membina pertanyaan secara dinamik berdasarkan nama lajur yang ditentukan.

Atas ialah kandungan terperinci Bolehkah C# SqlCommand Parameter Nama Lajur Tanpa Prosedur Tersimpan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan