能系统.对象类保存数据表对象的对象

本文关键字:对象 数据表 保存 系统 | 更新日期: 2023-09-27 18:02:46

我在vs2010中的c#中有一个方法,应该返回系统的通用对象。因为这些方法返回不同类型的结果比如int, datatable,string。对象既可以保存int也可以保存string但是当我将datatable保存或分配给泛型对象时它会抛出错误-

Server was unable to process request. ---> There was an error generating the XML document. ---> The type System.Data.DataTable may not be used in this context. To use System.Data.DataTable as a parameter, return type, or member of a class or struct, the parameter, return type, or member must be declared as type System.Data.DataTable (it cannot be object). Objects of type System.Data.DataTable may not be used in un-typed collections, such as ArrayLists.

因为我正在开发web方法,所以这就是为什么它抛出错误的另一部分。

泛型对象可以保存数据表对象吗?

能系统.对象类保存数据表对象的对象

是通用对象可以容纳一个数据表(它可以很容易地检查-见下面的代码)。我猜你的问题不在于持有通用对象本身,而是与WebService和序列化集合的可能性(本地方法就可以了)。

using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
using System.Data;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
            List<DataTable> t = new List<DataTable>();
            t.Add(new DataTable());
            ArrayList x = new ArrayList();
            x.Add(new DataTable());
        }
    }
}

所有。net类型都继承自System.Object,因此System.Object可以容纳DataTable

你的问题似乎与你的设计更有关系。如果它与web服务相关,请考虑不要返回DataTable或DataSet这样的类型,因为这些类型在非。net平台上可能不容易使用。而是在类/结构中表示数据。

可以。在Stackoverflow上有许多类似或相关的问题。请看下面的例子,它可能会对你有所帮助:

。. NET -将泛型集合转换为数据表