Parameters.Add(string, object)
dan Parameters.AddWithValue
Walaupun kelihatan berbeza, Parameters.Add(string, object)
dan Parameters.AddWithValue
mencapai hasil yang sama dalam penambahan parameter SQL. Perbezaan utama terletak pada cara mereka mencipta objek SqlParameter
asas.
Kedua-dua kaedah akhirnya menggunakan kaedah Add(SqlParameter)
secara dalaman. Perbezaan itu timbul daripada pendekatan mereka terhadap pembinaan SqlParameter
:
Parameters.Add(string, object)
: Kaedah ini menerima nama parameter dan nilai secara berasingan. Ia kemudian secara tersirat menghantar nilai kepada jenis data yang sesuai sebelum menjana SqlParameter
.Parameters.AddWithValue
: Kaedah ini mengambil satu hujah yang merangkumi kedua-dua nama dan nilai parameter. Ia menyimpulkan jenis data daripada nilai yang disediakan untuk mencipta SqlParameter
.Menggunakan Parameters.Add
dengan sintaks AddWithValue
(cth., command.Parameters.Add("@demographics", demoXml)
) mungkin terkumpul tanpa ralat disebabkan keserasian jenis object
. Walau bagaimanapun, amalan ini tidak disyorkan dan dianggap tidak betul.
AddWithValue
Penciptaan Parameters.AddWithValue
berpunca daripada dua pertimbangan utama:
Parameters.Add
yang terlebih muatan.Parameters.Add(string name, object value)
boleh menunjukkan tingkah laku yang tidak dapat diramalkan dengan penukaran enum tersirat. AddWithValue
, dengan menerima satu hujah, mengurangkan potensi isu ini.Atas ialah kandungan terperinci Parameter.Tambah(rentetan, objek) lwn. AddWithValue: Apakah Perbezaan Sebenar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!