0

データベーステーブルから配列に値を保存したいのですが、保存する場合は、「オブジェクトの参照がオブジェクトのインスタンスを設定しない」という例外を使用して、コードを確認してください。

.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 staticint[]同意します。

}

4

3 に答える 3

2

test.agreeですnull

フィールドに新しい配列を配置する必要があります。

于 2012-06-11T11:42:17.870 に答える
1

どのアレイで、正確にどこでエラーが発生していますか? 見た目では、インスタンス化することのない同意する必要があります。

試す

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());
于 2012-06-11T11:44:16.960 に答える
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"]);
        }
于 2012-06-11T12:14:06.990 に答える