[英]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);
您应该注意,如果单元测试需要对DataTable
的DataColumnCollection
(列)强制执行类型约束 - 您可以使用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.