Pertanyaan Berparameter untuk MySQL dengan C#
Soalan ini menangani isu biasa yang dihadapi apabila menggunakan pertanyaan berparameter dengan MySQL dalam C#. Kod yang disediakan termasuk bahagian berkaitan kod yang menimbulkan isu.
Soalan:
Coretan kod termasuk pertanyaan berparameter dengan dua tanda soal (?) sebagai ruang letak untuk nilai parameter. Walau bagaimanapun, pengguna mengalami IndexOutOfBoundsException apabila menambah parameter pertama. Apa yang salah dengan kod itu?
Jawapan:
Kod yang disediakan memulakan objek MySqlCommand dengan pertanyaan berparameter, tetapi tanda soal pemegang tempat tidak diawali dengan "@ " aksara, yang diperlukan untuk parameter bernama dalam MySQL. Kod yang diperbetulkan adalah seperti berikut:
private String readCommand = "SELECT LEVEL FROM USERS WHERE VAL_1 = @param_val_1 AND VAL_2 = @param_val_2;"; public bool read(string id) { level = -1; MySqlCommand m = new MySqlCommand(readCommand); m.Parameters.AddWithValue("@param_val_1", val1); m.Parameters.AddWithValue("@param_val_2", val2); level = Convert.ToInt32(m.ExecuteScalar()); return true; }
Dalam kod yang diperbetulkan ini:
Atas ialah kandungan terperinci Mengapa Pertanyaan Parameter MySQL Saya dalam C# Membuang IndexOutOfBoundsException?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!