我正在尝试制作一个警报系统,用于检查与患者相关的过敏症的药物链接过敏(请参阅下图)。 SQLDataReader未读取
当我运行它似乎只是完全跳过SqlDataReader的代码,我已经当(reader.HasRows)进行检查,它只是显示有在读者没有行。我想要做的就是在阅读器的最后显示一个带有选定过敏名称的消息框。我正在使用SQL Server 2014.任何帮助将不胜感激。所有的SqlCommand的
private void button_addItem_Click(object sender, RoutedEventArgs e)
{
if (!string.IsNullOrEmpty(comboBox_select_Item.Text.ToString()))
{
using (SqlConnection conn = new SqlConnection(connection))
{
try
{
SqlCommand sqlCmd2 = new SqlCommand("SELECT allergyName, allergyDescription FROM Allergies A INNER JOIN PatientAllergies PA ON A.allergyID = PA.allergyID WHERE A.allergyID = PA.allergyID AND PA.allergyID = (SELECT allergyID FROM Medication_Allergies MA WHERE MA.medID = " + comboBox_select_Item.SelectedValue.ToString() + ")", conn);
conn.Open();
SqlDataReader sqlReader = sqlCmd2.ExecuteReader();
Allergies allergies = new Allergies();
while (sqlReader.Read())
{
allergies.allergyName = Convert.ToString(sqlReader["allergyName"]);
allergies.allergyDescription = Convert.ToString(sqlReader["allergyDescription"]);
}
MessageBox.Show(allergies.allergyName);
sqlReader.Close();
FillSalesItemGrid();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString(), ex.ToString());
}
}
}
}
可能查询返回零行。 –
我只是看不到,我已经通过我的声明来追踪,它应该返回一个值。 –
您可能也会从SQL中收到错误。 ExecuteReader不会将SQL错误视为.NET异常。你能抓住你创建的字符串并在SSMS中运行它吗? 另外,如果我没有指出你的代码容易受到注入攻击,我会不服。 – Xedni