以下代码采用 Excel 文件并将其加载到 DataTable 中。如果文件列中的值与 DataTable 列的 DataType 不匹配,则程序会抛出System.ArgumentException
.
例如,DataTable 中的 QTY 列是,Int32
但电子表格中的第 5 行的值是 40O 而不是 400。如何在数据加载到 DataTable 之前或期间检查数据,并告知用户哪一行/列有无效值?
//"file" = c:\myfile.xlsx
string strConn = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + file + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1;TypeGuessRows=0;ImportMixedTypes=Text\"", file);
using (OleDbConnection dbConnection = new OleDbConnection(strConn))
{
using (OleDbDataAdapter dbAdapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", dbConnection))
{
dbAdapter.Fill(InputTable);
}
}
这些列是:
ColumnName DataType
ID System.String
QTY System.Int32
DOS System.DateTime
谢谢!