每当我进行搜索时,我都会收到此错误:无效的列名称'datafromcombobox'
我尝试在我的SQL查询中对数据进行硬编码,但它确实有效。知道我的代码有什么问题吗?
以下是代码:
string selectedMedication = cboMedicationType.SelectedItem.ToString();
string strMedications = "SELECT medicationName FROM MEDICATION WHERE medicationType= (" + selectedMedication + ")";
SqlCommand cmdMedications = new SqlCommand(strMedications, connection);
connection.Open();
SqlDataReader readMedications = cmdMedications.ExecuteReader();
while (readMedications.Read())
{
string medicationVar = readMedications["medicationName"].ToString();
clbMedication.Items.Add(medicationVar, true);
}
readMedications.Close();
connection.Close();
答案 0 :(得分:0)
我想你只是忘记了查询中的引号。 这应该有效:
string strMedications = "SELECT medicationName FROM MEDICATION WHERE medicationType= ('" + selectedMedication + "')";
答案 1 :(得分:0)
我会这样做:
using (SqlCommand cmdMedications = new SqlCommand(strMedications, connection))
{
string strMedications = "SELECT medicationName FROM MEDICATION WHERE medicationType = @selectedMedication;
command.Parameters.AddWithValue("selectedMedication", cboMedicationType.SelectedItem.ToString());
connection.Open();
using (SqlDataReader readMedications = cmdMedications.ExecuteReader())
{
while (readMedications.Read())
{
string medicationVar = readMedications["medicationName"].ToString();
clbMedication.Items.Add(medicationVar, true);
}
}
connection.Close();
}
我改变了几件事:
using
(see this article),因为那时您不需要close
或dispose
个对象 - {{1语句负责处理。如果我能清除别的东西,请告诉我。我希望这有帮助!
P.S。我主要是在没有调试的情况下输入这个,所以可能有一些小东西你可能需要调整,但我觉得你应该得到它的要点。