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
905 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!

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