如何增加整数数组的索引值

时间:2012-06-11 11:40:11

标签: c# arrays

我想将datatbase表中的值存储到array.but当我这样做时,异常“object eferance not set instance of object”通过请查看我的代码。

.cod Behinde

   public DataSet showoption1()
    {
        SqlCommand cmd = new SqlCommand("select * from assessmenttest",con);

        SqlDataAdapter adptr = new SqlDataAdapter(cmd);

        DataSet ds = new DataSet();
        adptr.Fill(ds,"test");

        int [] arr=new int[10];
        DataTable table=ds.Tables[0];
        for(int i=0;i<table.Rows.Count;i++  )
        {
test.Agree[i] =Convert.ToInt32(ds.Tables[0].Rows[i]["option1"]);

    }

业务逻辑层类代码:

公共课堂考试{

public static int []同意;

}

3 个答案:

答案 0 :(得分:2)

test.agreenull

您需要在该字段中放置一个新数组。

答案 1 :(得分:1)

你究竟在哪里得到错误,在哪个阵列上?根据它的外观,它必须在agree []上,你永远不会实例化。

尝试

public static int[] agree =new int[10];

但我想你可能想要同意一个清单,因为你不知道你需要多少

public static List<int> agree = new List<int>;

然后使用

agree.Add(Convert.ToInt32(ds.Tables[0].Rows[i]["option1"]);

你可以像数组一样访问它

MessageBox.Show(agree[1].ToString());

答案 2 :(得分:0)

在添加值之前实例化:

 SqlCommand cmd = new SqlCommand("select * from assessmenttest", con);

        SqlDataAdapter adptr = new SqlDataAdapter(cmd);

        DataSet ds = new DataSet();
        adptr.Fill(ds, "test");

        int[] arr = new int[10];
        DataTable table = ds.Tables[0];
        test.agree = new int[table.Rows.Count];
        for (int i = 0; i < table.Rows.Count; i++)
        {

            test.agree[i] = Convert.ToInt32(ds.Tables[0].Rows[i]["option1"]);
        }