Rumah >pangkalan data >tutorial mysql >Parameter.Tambah(rentetan, objek) lwn. AddWithValue: Apakah Perbezaan Sebenar?
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!