Rumah > pangkalan data > tutorial mysql > Bolehkah Nama Jadual Diparameterkan dalam .NET/SQL untuk Kod Bersih dan Selamat?

Bolehkah Nama Jadual Diparameterkan dalam .NET/SQL untuk Kod Bersih dan Selamat?

Patricia Arquette
Lepaskan: 2024-12-30 08:59:18
asal
865 orang telah melayarinya

Can Table Names Be Parameterized in .NET/SQL for Clean and Secure Code?

Memparameterkan Nama Jadual dalam SQL?

Soalan:

Adakah mungkin untuk menghantar jadual nama sebagai parameter dalam .NET/SQL? Matlamat akhir adalah untuk meningkatkan kebersihan dan mengelakkan kod yang tidak kemas tanpa menjejaskan keselamatan.

Jawapan:

Memparameterkan nama jadual secara langsung tidak disokong. Walau bagaimanapun, anda secara tidak langsung boleh mencapai ini menggunakan sp_ExecuteSQL:

SqlConnection conn = new SqlConnection("Your database connection string");
DataTable dt = new DataTable();

using (SqlCommand cmd = conn.CreateCommand())
{
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.CommandText = "sp_ExecuteSQL";

    cmd.Parameters.AddWithValue("@stmt","SELECT * FROM table");

    using (SqlDataAdapter da = new SqlDataAdapter(cmd))
    {
        da.Fill(dt);
    }
}
Salin selepas log masuk

Sebagai alternatif, anda boleh membina pernyataan SQL (berparameter) dalam C#, menambahkan nama jadual dan melaksanakannya sebagai arahan:

var name = ...; //Determine table name dynamically here
var sql = $"SELECT * FROM {"table"}";
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
    cmd.Parameters.Add("", ...);
    var result = cmd.ExecuteReader();
    ...
}
Salin selepas log masuk

Ingat untuk menyenarai putihkan nama jadual untuk mengelakkan potensi kelemahan keselamatan.

Atas ialah kandungan terperinci Bolehkah Nama Jadual Diparameterkan dalam .NET/SQL untuk Kod Bersih dan Selamat?. 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