我在我的連接C#Windows窗體與MySQL數據庫應用程序的過程。在使用MySqlDataReader執行數據檢索期間發生該問題。MySqlDataReader.ExecuteReader越來越之後的所有代碼跳過
在關注的方法,我試圖如果對應於該大學的名稱和課程名稱以前的條目存在檢索大學課程courseId,否則返回-1。
在我的代碼,MySqlDataReader.ExecuteReader後的代碼段總是被它的執行過程中跳過。我在以下鏈接中遇到了可能的解決方案,但它也無法解決我的問題。 All code after SqlDataReader.ExecuteReader skipped
下面的代碼示例爲您提供關注下的方法。
public int SelectCourseId(Course selectCourse)
{
int courseId = -1;
MySqlDataReader dataReader = null;
try
{
using (connection)
{
String query = "SELECT * FROM course WHERE courseName=" + selectCourse.CourseName + " AND courseUniversityName=" + selectCourse.UniversityName;
MySqlCommand command = new MySqlCommand(query, this.connection);
connection.Open();
dataReader = command.ExecuteReader();
if (dataReader.HasRows)
{
courseId = Convert.ToInt32(dataReader["courseId"] + "");
}
}
}
catch (MySqlException)
{
return courseId;
}
finally
{
if (dataReader != null)
{
dataReader.Close();
}
this.CloseConnection();
}
return courseId;
}
我將不勝感激,如果有人能夠給我提供一個良好的解釋解決這個問題,請原諒我的任何錯誤,因爲這是第一次我創建一個C#數據庫相關的應用程序。
的ExecuteScalar代替的ExecuteReader? –
讀者究竟是否有行?*沿着這些路線,'catch'會被擊中嗎?你還應該在'if(dataReader.HasRows)'中寫'dataReader.Read()'。否則它會**拋出異常。 –
不要吞食異常。 – SLaks