我使用它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
答案 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形式”,所以这不是一个好主意。