C# 如何以手动/编程方式创建数据行?
我的项目的代码库有一个遗留方法,该方法将DataRow作为参数,我想为其创建一个单元测试方法C# 如何以手动/编程方式创建数据行?,c#,system.data,C#,System.data,我的项目的代码库有一个遗留方法,该方法将DataRow作为参数,我想为其创建一个单元测试方法 如何手动创建要传递给该方法的DataRow对象?该类没有面向公共的构造函数。可以通过创建新的DataTable实例,向DataTable中添加与DataRow需要具有的“键”对应的列,然后对DataTable调用NewRow()来创建DataRow。例如: DataTable usersTable = new DataTable(); usersTable.Columns.Add("Firs
如何手动创建要传递给该方法的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
(Columns)强制执行类型约束,那么可以使用DataColumn
类的重载构造函数来包括预期的类型
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.
var dt=new DataTable();
var dc=新数据列(“年龄”,类型(int));
dt.Columns.Add(dc);
var dr=dt.NewRow();
dr[“年龄”]=“测试”//抛出一个异常
//输入字符串的格式不正确。无法存储在年龄列中。应为Int32类型。
usersTable.Rows.Add(userRow);您还需要将此行添加到datatable中。这样做dt.Rows.Add(dr)代码>