0
我的模型類課程:如何轉換對象類型的SQL服務器SQLReader的對INT
public int CourseID { get; set; }
public string CourseName { get; set; }
public int CourseCredit { get; set; }
和我有下面的代碼從數據庫中有關課程retrive信息:
List<Course> CourseList = new List<Course>();
var con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\A\Documents\CourseDB.mdf;" +
@"Integrated Security=True;Connect Timeout=30");
con.Open();
var cmd2 = new SqlCommand("select Courses.CourseID, Courses.CourseName, Courses.CourseCredit from Courses inner join UsersCourses on " +
"[Courses].[CourseID] = [UsersCourses].[CourseID] where UsersCourses.UserID = @user", con);
cmd2.Parameters.Add(new SqlParameter("@user", SqlDbType.Int)).Value = UserID;
SqlDataReader reader = cmd2.ExecuteReader();
while (reader.Read())
{
{
CourseList.Add(new Course()
{
CourseID = Convert.ToInt32(reader["CourseID"]),
CourseName = (reader["CouorseName"].ToString()),
CourseCredit = Convert.ToInt32(reader["CourseCredit"])
});
}
}
的問題是,當我在這裏運行代碼時有FormatException拋出:
CourseList.Add(new Course()
{
CourseID = Convert.ToInt32(reader["CourseID"]),
CourseName = (reader["CouorseName"].ToString()),
CourseCredit = Convert.ToInt32(reader["CourseCredit"])
});
有關如何解決這個問題 ?
你有沒有調試過來看看它不喜歡的3個字段中的哪一個值? – Jamiec
有一個錯字。你寫了「CouorseName」而不是「CourseName」 – MatSnow
你應該看看[FormatException]是什麼(https://msdn.microsoft.com/en-us/library/system.formatexception(v = vs.110).aspx)是。它可以被稱爲「在調用一個將字符串轉換爲其他數據類型的方法時,該字符串不符合所需的模式」。在轉換爲int之前,您是否調試瞭解讀者的價值? – maccettura