Ошибка не указывает на экземпляр объекта - PullRequest
0 голосов
/ 27 декабря 2018

Я использую его DevExpress

Я пытаюсь добавить новую группу и добавить ее в ComboBoxEdit, но ошибка показывает, что она не указывает на экземпляр объекта.Я передаю параметр в разных формах ... Как я могу это сделать?
1 форма InformationOfStudents:

    public void LoadingIDGroupTeacher(string indexTeacher)
    {

        sqlConnection = new SqlConnection(connectionString);
        string sql = "GETGroupsTeacher";
        sqlConnection.Open();
        sqlCommand = new SqlCommand(sql, sqlConnection)
        {
            CommandType = System.Data.CommandType.StoredProcedure
        };
        sqlParameter = new SqlParameter
        {
            ParameterName = "@index",
            Value = int.Parse(indexTeacher)
        };
        sqlCommand.Parameters.Add(sqlParameter);
        sqlDataReader = sqlCommand.ExecuteReader();
        while (sqlDataReader.Read())
        {
            //an error appears here

ComboBoxGroups.Properties.Items.Add(sqlDataReader.GetValue(0).ToString()); 
        }
        sqlConnection.Close();
    }

2 форма, когда я хочу добавить новую группу:

    private void BtnCancel_Click(object sender, EventArgs e)
    { 
        new InformaitionOfStudents().LoadingIDGroupTeacher(usIndex);
        Dispose();

    }

T-Процедуры SQL:

 ALTER PROCEDURE [dbo].[GETGroupsTeacher]
 @index int
 AS
 SELECT NameGroup FROM dbo.Groups WHERE Teacher = @index

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018

Если ComboBoxGroups является элементом управления DevExpress DevExpress.Xpf.Editors.ComboBoxEdit, вам, вероятно, следует использовать:

ComboBoxGroups.Items.Add(sqlDataReader.GetValue(0).ToString());

, а не:

ComboBoxGroups.Properties.Items.Add(sqlDataReader.GetValue(0).ToString()); 

И Dispose(); в обработчике события кнопкив «2 форме» будет расположен диалог «2 формы», так что это, вероятно, не очень хорошая идея.

0 голосов
/ 28 декабря 2018

Добавить:

     if(!sqlDataReader.IsDBNull(0))
          ComboBoxGroups.Properties.Items.Add(sqlDataReader.GetValue(0).ToString()); 

Или:

     ComboBoxGroups.Properties.Items.Add(sqlDataReader.GetValue(0)?.ToString() ?? ""); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...