2012-04-23 1 views
-4

Imが1列に3つのテーブルを取るしようとしています。ストアドプロシージャが動作します。最初の追加行で、オブジェクト参照がオブジェクトのインスタンスに設定されていないとエラーします。これを行う方法は?私はこれについて完全に間違っているかどうかわからない。早めにありがとう。3のテーブルが

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; 
    } 
+3

我々は、エラーが何であるかを推測してもらいますか?他の人があなたに提供してくれた答えが事実上受け入れられない理由を推測することもできますか? –

+0

実際に発生しているエラーを含めると便利です。 – kprobst

+0

新しい連絡先Cのプロパティ値はどこにありますか?新しいものを作成し、そのプロパティを参照します。私はそれらがnullであると期待します。 – hatchet

答えて

0

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