我有一个C#脚本,它将一个excel文件读入一个数据表,然后填充一个数据库表,其中包含所有数据类型为varchar的X列数。下图将excel数据源与数据库上的导入版本进行比较。这就是我需要它工作的方式,请注意精确度。
但是,数据源中偶尔会有星号来抑制低数字。这对导入有以下影响。注意Col3中缺乏精确度的变化。
我想这是因为我的脚本在Col3中看到多个数据类型并在填充数据表时将其转换为varchar。目前正在我的连接字符串中使用IMEX=1
处理此问题。
我是否有办法操纵我的代码,以便将任何星号转换为易于识别的值,例如-999而不修改excel中的数据源?
这是我的代码
String FilePath = "Code to get file path";
String SheetName = "Code to get sheet name";
String SheetRange = "Code to get sheet range";
SourceConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + FilePath + ";Extended Properties='Excel 8.0;IMEX=1;HDR=NO'";
OleDbConnection SourceConnection = new OleDbConnection(SourceConnectionString);
String strSQL = "SELECT * FROM [" + SheetName + "$" + SheetRange + "]";
OleDbCommand myCommand = new OleDbCommand(strSQL, SourceConnection);
DataTable myDataTable = new DataTable();
OleDbDataAdapter myDataAdaptor = new OleDbDataAdapter(myCommand);
myDataAdaptor.Fill(myDataTable);