Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将3个表合并到一个数组中_C#_Database - Fatal编程技术网

C# 将3个表合并到一个数组中

C# 将3个表合并到一个数组中,c#,database,C#,Database,我试图将3个表合并到一个数组中。存储过程工作正常。在第一个添加行,它错误地表示对象引用未设置为对象的实例。有办法吗?我不确定我是否完全错了。提前谢谢 public static ArrayList SearchContacts(string search) { Contacts C = new Contacts(); ContactsAddress D= new ContactsAddress(); ContactPhone E

我试图将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;
    }

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

我们能猜出错误是什么吗?我们还可以猜测为什么您几乎不接受其他人提供的答案?如果您包含正在发生的实际错误,这会很有帮助。新联系人C集合中的属性值在哪里?创建一个新的,然后引用它的属性。我希望它们是空的。