我有一个带有静态方法的类,该方法可检索数据库数据并返回数据表object
。
public static class DataBase
{
public static DataTable Selecionar()
{
SqlDataReader Retorno = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(Retorno);
return dt;
}
}
在另一个类中,我在实例方法内调用此静态方法,该实例方法处理DataTable
object
并填充返回的列表。
public class Questionario
{
public List<Objects.Questionario> Selecionar()
{
var dt = DataBase.Selecionar();
List<Objects.Questionario> Questionarios = new List<Objects.Questionario>();
foreach (System.Data.DataRow dr in dt.Rows)
{
//ADD ITENS TO LIST Questionarios
}
return Questionarios;
}
}
我也有一个UserControl
实例,该实例是上面引用的类。
public partial class ucLayout1 : UserControl
{
private void carregaQuestionario()
{
Questionario dbQuestionario = new Questionario();
dbQuestionario.Selecionar();
}
}
将这个UserControl
放在表单中(拖放)时,我会收到错误消息
“ System.NullReferenceException:对象引用未设置为对象的实例。”
如果我将Questionario
类中的静态方法调用替换为new DataTable();
,则不会出错。