Rumah >pangkalan data >tutorial mysql >Mengapa MySqlCommand's Parameters.Add Usang, dan Bagaimana Saya Menggunakan AddWithValue Sebaliknya?
Apabila bekerja dengan MySqlCommand dalam C#, pembangun sering menghadapi amaran usang berkaitan dengan Command.Parameters.Add. Memahami sebab di sebalik penamatan ini dan pendekatan baharu yang disyorkan adalah penting untuk menulis aplikasi pangkalan data yang selamat dan cekap.
Dalam versi terdahulu penyedia data MySQL, Command.Parameters.Add telah digunakan untuk menambah parameter pada pertanyaan SQL . Walau bagaimanapun, dengan pengenalan pertanyaan berparameter, kaedah ini telah digantikan dengan AddWithValue.
Pertanyaan berparameter menggunakan parameter ruang letak dalam penyata SQL dan mengaitkannya dengan nilai khusus semasa masa jalan. Pendekatan ini membantu menghalang serangan suntikan SQL, kerana parameter tidak disertakan secara langsung dalam rentetan SQL.
Menggantikan Parameter.Tambah dengan AddWithValue
Sintaks baharu yang disyorkan untuk menambah parameter ialah:
command.Parameters.AddWithValue("@parameterName", value);
Dalam kod yang disediakan, ini akan terhasil dalam:
command.Parameters.AddWithValue("@mcUserName", mcUserNameNew); command.Parameters.AddWithValue("@mcUserPass", mcUserPassNew); command.Parameters.AddWithValue("@twUserName", twUserNameNew); command.Parameters.AddWithValue("@twUserPass", twUserPassNew);
Mengalih Keluar Petikan Tunggal Sekitar Pemegang Tempat
Selain itu, tidak perlu lagi membalut ruang letak dengan petikan tunggal dalam pernyataan SQL. Sintaks yang disyorkan ialah:
string SQL = "INSERT INTO `twMCUserDB` (`mc_userName`, `mc_userPass`, `tw_userName`, `tw_userPass`) VALUES (@mcUserName, @mcUserPass, @twUserName, @twUserPass)";
Kesimpulan
Dengan menggunakan kaedah AddWithValue baharu dan mengalih keluar petikan tunggal daripada ruang letak, anda boleh menulis pertanyaan SQL yang selamat dan cekap. Amalan ini membantu menghalang kelemahan suntikan SQL dan memastikan integriti operasi pangkalan data anda.
Atas ialah kandungan terperinci Mengapa MySqlCommand's Parameters.Add Usang, dan Bagaimana Saya Menggunakan AddWithValue Sebaliknya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!