Вот мой код. Я пытаюсь получить результат SQL-запроса, хранящегося в переменной query1
, и хочу использовать этот результат в запросе SQL, хранящемся в переменной query
. Messagebox не имеет значения, я просто написал его, чтобы узнать, получаю ли я правильные результаты из спискаbox1 или нет. Если я жестко задал результат запроса1 в параметрах команды, он отлично работает.Получение результата запроса в переменную, а затем передача его команде
private void btnAddCoarse_click(object sender, EventArgs e)
{
MessageBox.Show(listBox1.SelectedItem.ToString());
string query1 ="SELECT ogrenciNo FROM ders,ogrenci,Enrollment WHERE ogrenciId=ogrenciNo AND dersId=dersKodu AND ogrenci.email='" + mainform.Username + "' AND Enrollment.dersId='"+listBox1.SelectedValue+"'";
string query = "INSERT INTO Enrollment(dersId,ogrenciId) VALUES (@dersId, @ogrenciId)";
using (connection = new SqlConnection(connectionString))
using (SqlCommand command = new SqlCommand(query, connection))
{
connection.Open();
command.Parameters.AddWithValue("@dersId", listBox1.SelectedValue);
command.Parameters.AddWithValue("@ogrenciId",//this is where i need the query1//);
command.ExecuteNonQuery();
PopulateList2();
}
}
Вы использовать параметры со вторым запросом, но не первый? - Сделай это для обоих! –
@AlexK. один из них выбирает другой, является инструкцией insert, мне нужны параметры для вставки, чтобы он знал, что он собирается вставить. Я не вижу, почему мне нужны параметры для другого. –
@ PoyrazKürkçüoğlu Использование sql-параметров является хорошей практикой и является обязательным для избежания SQL-инъекции – apomene