OleDbException говорит, что проблема заключается в ' несоответствии типов в выражении .', Но я проверил в базе данных (доступ) и в выпадающем списке, и оба типа строки.
Я пытался сделать комбо-бокс в виде строки с comboBox_CourseID.SelectedItem.ToString()
и изменить на comboBox_CourseID.Text
, но все та же ошибка.Я также пытался проверить тип столбца в Access, но это был короткий текст.Я пытался использовать текстовое поле вместо комбинированного списка, но безуспешно.
Это мой код:
OleDbCommand show_table = new OleDbCommand
{
Connection = connect,
CommandText = "Select Student.StudentID, Student.First_Name, Student.Last_Name, Student.Contact_Number, Student.Email " +
"From Student Inner Join Course on Course.CourseID = Student.CourseID " +
"Where Course.CourseID = '" + comboBox_CourseID.SelectedItem.ToString() + "'"
};
OleDbDataReader dataReader =show_table.ExecuteReader();
*//error here*
if (dataReader.Read() == false)
MessageBox.Show("Record Not Found.");
dataReader.Close();
OleDbDataAdapter displayCourseID = new OleDbDataAdapter(show_table);
DataTable table = new DataTable();
displayCourseID.Fill(table);
dataGridView_StudentInfo.DataSource = table;
Я ожидал, что он заполнит dataGridView данными из базы данных.(Access) в виде таблицы.
Примечание: я поставил Student.CourseID как MultiValued в Access, это повлияет на тип?