Я делаю простую университетскую систему баз данных модулей, которая включает в себя обновление и навигацию по различным модулям для различных курсов.У меня есть кнопки «Далее», «Предыдущий», «Первый» и «Последний» для навигации по модулям и их полям, которые назначены текстовым полям, использующим набор данных из таблицы модулей.Мне удалось это сделать, но когда я пытаюсь использовать oleDbCommand, чтобы выбрать имя и фамилию преподавателя из другой таблицы, используя идентификатор преподавателя, связывающий две таблицы.Когда я нажимаю кнопку в первый раз, я получаю только информацию о модуле из таблицы модулей, но не получаю данных об имени или фамилии преподавателя.На втором щелчке я получаю «COM-объект, который был отделен от лежащего в его основе RCW, не может быть использован».ошибка и на третий клик я получаю имя и фамилию репетитора, и все работает отлично.Это смутило меня, так как кнопка, кажется, работает только при щелчках, кратных 3. Кто-нибудь знает, почему это происходит?Вот код:
private void btnFirst_Click(object sender, EventArgs e)
{
rownumber = 0;
ShowProducts();
string tutorID = datasetModuleInstanceUSB1.Module.Rows[rownumber]["TutorID"].ToString();
try
{
//Open connection
oleDbConnectionModule.Open();
//Define connection for command
oleDbCommandGetTutorName.Connection = oleDbConnectionModule;
//Define data reader to be used
OleDbDataReader dR;
dR = oleDbCommandGetTutorName.ExecuteReader();
//Set parameter for get tutor name ID
oleDbCommandGetTutorName.Parameters[0].Value = tutorID;
if (dR.Read())
{
txtboxTutorForename.Text = dR["Forename"].ToString();
txtboxTutorSurname.Text = dR["Surname"].ToString();
//Execute get tutor name command
;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
//Close connection
oleDbConnectionModule.Close();
}
}