将 3 个表合并为一个数组

本文关键字:一个 数组 合并 | 更新日期: 2023-09-27 18:31:58

我试图将 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 个表合并为一个数组

我的猜测是您的Contacts构造函数没有为FirstName字段设置值。因此,当您调用 C.FirstName.ToString() 时,它会抛出一个空引用异常。