我正在嘗試製作一個警報系統,用於檢查與患者相關的過敏症的藥物鏈接過敏(請參閱下圖)。 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