В приведенном ниже примере показано, что произойдет после выбора случайного элемента списка. Sql запрос успешно выполнен, однако я получаю сообщение об ошибке «указанное приведение неверно c#».
Combobox listaPrzedmiotow сохраняет список школьных предметов в строки. Combobox listaIndeksów должен хранить список индексов учащихся. В SQL База данных сервера индексы учеников столбец принимает целое число, поэтому я не знаю, почему метод .GetInt64 (i) для этого недопустим.
private void listaPrzedmiotow_SelectedIndexChanged(object sender, EventArgs e)
{
MessageBox.Show(listaPrzedmiotow.SelectedItem.ToString());
SqlCommand sqlCommand = new SqlCommand("select studenci.NUMER_INDEKSU from dbo.oceny inner join studenci on studenci.numer_indeksu = oceny.numer_indeksu inner join dbo.przedmioty on przedmioty.przedmiot_id = oceny.przedmiot_id where przedmioty.NAZWA_PRZEDMIOTU = '" + listaPrzedmiotow.SelectedItem.ToString() + "'", sqlConnection);
SqlDataReader indexesList = sqlCommand.ExecuteReader();
while (indexesList.Read())
{
for (byte i = 0; i < indexesList.FieldCount; i++)
{
listaIndeksów.Items.Add(indexesList.GetInt64(i));
}
}
indexesList.Close();
indexesList.Dispose();
}