-4

3 つのテーブルを 1 つの配列に取り込もうとしています。ストアドプロシージャは機能します。最初の追加行で、オブジェクト参照がオブジェクトのインスタンスに設定されていないというエラーが表示されます。これを行う方法はありますか?これについて完全に間違っているかどうかはわかりません。ありがとうございます。

    public static ArrayList SearchContacts(string search)
    {
        Contacts C = new Contacts();
         ContactsAddress D= new ContactsAddress();
         ContactPhone E = new ContactPhone();
        ArrayList ret = new ArrayList();
        SqlDataSource ds = Database.GetDataSource();
        ds.SelectCommand="_ContactSearch";
        ds.SelectCommandType=SqlDataSourceCommandType.StoredProcedure;

         ds.SelectParameters.Add("FirstName", DbType.String,C.FirstName.ToString());
         ds.SelectParameters.Add("LastName", DbType.String,C.LastName.ToString());
         ds.SelectParameters.Add("EmailAddress", DbType.String,C.EmailAddress.ToString());
         ds.SelectParameters.Add("PostalCode", DbType.String,D.PostalCode.ToString());
         ds.SelectParameters.Add("PhoneNumber", DbType.String,E.PhoneNumber.ToString());

         IEnumerator i = ds.Select(System.Web.UI.DataSourceSelectArguments.Empty).GetEnumerator();
        while (i.MoveNext())
        {
            DataRowView d = (DataRowView)i.Current;

            fillSearch(d, ref C,ref D, ref E);
            ret.Add(C);
            ret.Add(D);
            ret.Add(E);
        }
        return ret;
    }
4

1 に答える 1

0

私の推測では、ContactsコンストラクターがFirstNameフィールドの値を設定していないということです。したがって、 を呼び出すとC.FirstName.ToString()、null 参照例外がスローされます。

于 2012-04-23T20:47:41.897 に答える