Penjelasan terperinci tentang perbezaan antara Parameter.Tambah dan Parameter.AddWithValue
KaedahParameters.Add
membolehkan anda menentukan nama parameter, SqlDbType dan nilai. Sintaks yang betul adalah seperti berikut:
command.Parameters.Add("@ID", SqlDbType.Int); command.Parameters["@ID"].Value = customerID;
Sebaliknya, Parameters.AddWithValue
mempunyai sintaks yang lebih ringkas dan tidak memerlukan penetapan SqlDbType:
command.Parameters.AddWithValue("@demographics", demoXml);
Walau bagaimanapun, apabila menggunakan Parameters.AddWithValue
dengan sintaks yang sama seperti Parameters.Add
, tiada ralat kompilasi berlaku. Menariknya, kod itu juga dilaksanakan seperti biasa.
Penjelasan mendalam
Secara dalaman, kedua-dua kaedah menggunakan kaedah yang sama:
return this.Add(new SqlParameter(parameterName, value));
Parameters.AddWithValue
telah diperkenalkan untuk menggantikan Parameters.Add
untuk meningkatkan kejelasan kod. Dalam lebihan Parameters.Add
, hujah kedua ialah objek jenis, yang boleh menyebabkan kekeliruan tentang beban berlebihan yang hendak digunakan. Perbezaan ini penting kerana beban berlebihan mempunyai tingkah laku yang sangat berbeza.
Pertimbangkan contoh berikut:
SqlCommand command = new SqlCommand(); command.Parameters.Add("@name", 0);
Walaupun nampaknya ia memanggil Add(string name, object value)
lebihan, ia sebenarnya memanggil Add(string name, SqlDbType type)
lebihan. Ini kerana 0 boleh ditukar secara tersirat kepada jenis penghitungan.
Oleh itu, menggunakan Parameters.AddWithValue
menghilangkan kemungkinan kesamaran dan meningkatkan kebolehbacaan kod. Adalah disyorkan untuk menggunakan Parameters.AddWithValue
sebagai keutamaan untuk menjadi lebih jelas dan lebih mudah untuk mengekalkan kod.
Atas ialah kandungan terperinci Parameter.Tambah lwn Parameter.AddWithValue: Apakah Perbezaan Sebenar dan Mana Yang Perlu Saya Gunakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!