所以我想通过在类中添加int来扩展DataRow
类显然它很简单
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类上写什么
答案 0 :(得分:5)
如果您不能在评论中根据@Tim的建议简单地使用具有int
类型的单个DataColumn的DataTable,那么请考虑创建一个类型化的DataTable。使用类型化的DataTable,您可以定义列名称和类型以及许多其他DataTable功能和行为,包括NewRow()
的工作方式。
可以在codeproject.com上的文章中找到这样做的演示:
How to Manually Create a Typed DataTable
关于类型化DataTable的一个好处是您不需要通过索引或列名“间接”引用列,您可以使用Visual Studio的Intellisense帮助您使用属性表示法引用列。这是一个例子:
var intDataTable = new YourTypedDataTable();
YourTypedDataRow row = intDataTable.NewRow();
row.Temp = 100;
intDataTable.Rows.Add(row);