3

所以我想通过在DataRow类中添加int来扩展类显然很简单

public class DataRowWithInt : DataRow
{
    // Properties ///////////////////////////////////////////////////

    public int integer
    {
        get;
        set;
    }

    // Constructor //////////////////////////////////////////////////

    public DataRowWithInt(DataRowBuilder builder)
        : base(builder)
    {
    }
}

现在,当您想创建新行时,您必须调用

DataTable intDataTable = new DataTable();
intDataTable.Columns.Add("temp");
DataRowWithInt row = intDataTable.NewRow();

但这会给您带来转换错误。我怎样才能避免这个问题并DataRowWithInt得到intDataTable

谢谢你。

- 编辑 -

我知道 DataTable 类不会返回 DataRowWithIn。我想创建一个继承的 DataTable 类,但我不知道在 NewRow 类上写什么

4

1 回答 1

5

如果您不能按照@Timint在评论中的建议简单地使用具有单个 DataColumn 类型的 DataTable,那么请考虑创建一个类型化的 DataTable。使用类型化的 DataTable,您可以定义列名和类型以及许多其他 DataTable 功能和行为,包括如何NewRow()工作。

可以在 codeproject.com 上的这篇文章中找到这样做的演示:
如何手动创建类型化数据表

类型化 DataTable 的一个好处是您不需要通过索引或列名“间接”引用列,您可以使用属性表示法来引用列,而 Visual Studio 的 Intellisense 可以帮助您。这是一个例子:

var intDataTable = new YourTypedDataTable();
YourTypedDataRow row = intDataTable.NewRow();
row.Temp = 100;
intDataTable.Rows.Add(row);
于 2013-08-14T21:23:28.800 回答