我已成功将 CSV 文件提取到以下类中:
[DelimitedRecord(",")]
[IgnoreFirst(1)] // ignores first line of file, since it's a header
public class Employee {
public string EmployeeId;
public string FirstName;
public string LastName;
// etc.
}
我需要基于该类创建一个 DataTable 才能使用 SqlBulkCopy。我找到了几个例子,但以下方法对我不起作用:
private static DataTable createEmptyDataTable(Type myType) {
DataTable dt = new DataTable();
foreach (PropertyInfo info in myType.GetProperties()) {
dt.Columns.Add(new DataColumn(info.Name, info.PropertyType));
}
return dt;
}
问题在于 myType.GetProperties()。它没有抛出错误,但它什么也不返回。它应该返回的 PropertyInfo 数组是空的。搞了这么久还是没搞清楚问题。。。
编辑:我也使用过这个变体但没有成功:
private static DataTable createEmptyDataTable(Type myType) {
DataTable dt = new DataTable();
PropertyInfo[] infoArray = myType.GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static);
foreach (PropertyInfo info in infoArray) {
dt.Columns.Add(new DataColumn(info.Name, info.PropertyType));
}
return dt;
}