错误不表示对象实例

时间:2018-12-27 20:05:31

标签: c# winforms

我使用它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 :(得分:0)

添加:

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

或者:

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

答案 1 :(得分:0)

如果ComboBoxGroups是DevExpress DevExpress.Xpf.Editors.ComboBoxEdit控件,则应使用:

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

而不是:

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

按钮事件处理程序中的“ {2}”形式的Dispose();将处理对话框“ 2形式”,所以这不是一个好主意。