繁体   English   中英

如何手动/以编程方式创建 DataRow?

[英]How can I manually / programmatically create a DataRow?

我的项目的代码库有一个遗留方法,它将 DataRow 作为参数,我想为其创建一个单元测试方法。

如何手动创建 DataRow 对象以传递给该方法? System.Data.DataRow类没有面向公众的构造函数。

可以通过创建一个新的 DataTable 实例,向 DataTable 中添加与 DataRow 需要具有的“键”对应的列,然后在 DataTable 上调用NewRow()来创建 DataRow。 例如:

DataTable usersTable = new DataTable();

usersTable.Columns.Add("FirstName");
usersTable.Columns.Add("LastName");
usersTable.Columns.Add("Email");

DataRow userRow = usersTable.NewRow();

userRow["FirstName"] = "Elmer";
userRow["LastName"] = "Example";
userRow["Email"] = "elmer@example.com";
usersTable.Rows.Add(userRow);

您应该注意,如果单元测试需要对DataTableDataColumnCollection (列)强制执行类型约束 - 您可以使用DataColumn类的重载构造函数来包含预期的Type

        var dt = new DataTable();

        var dc = new DataColumn("Age", typeof(int));
        dt.Columns.Add(dc);
        var dr = dt.NewRow();

        dr["Age"] = "test"; // throws an ArgumentException
        //Input string was not in a correct format. Couldn't store<test> in Age Column.  Expected type is Int32.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM