Как исправить 'System.Data.OleDb.OleDbException:' Несоответствие типов в выражении. '' В C # - PullRequest
0 голосов
/ 07 июня 2019

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, это повлияет на тип?

...