这是我的代码。我试图获得存储在query1
变量中的SQL查询的结果,并且想要将结果用于存储在query
变量中的SQL查询。 Messagebox是不相关的,我只是写了它,看看我是否从listbox1得到正确的结果。如果我将query1的结果硬编码为命令参数,它完美地工作。获取查询结果到一个变量,然后将其传递给一个命令
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。其中一个是选择另一个是插入语句,我需要插入参数,以知道它将插入什么。我不明白为什么我需要其他参数。 –
@PoyrazKürkçüoğlu使用sql参数是一种很好的做法,对于避免sql注入是强制性的 – apomene