ODBC连接到Excel文件-覆盖确定的数据类型
本文关键字:数据类型 覆盖 连接 Excel 文件 ODBC | 更新日期: 2023-09-27 18:19:26
关于这个主题还有其他几个问题,但我看到的答案引用了Text文件驱动程序,而我使用的是xlsx文件。无论如何,问题是:
在从Excel提取数据的C#程序中,有没有一种方法可以覆盖ODBC确定的数据类型?数据类型显示为数字,这似乎是因为行扫描显示的大部分数据是数字,而它是按字母数字处理的。使用ODBCDataReader.GetValue(int)
方法,所有文本数据都将显示为NULL。
以下是代码的基本结构:
public static void test()
{
OdbcDataReader DataReader;
try
{
using (OdbcConnection ODBC_Connection = new OdbcConnection("Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" + filename))
{
ODBC_Connection.Open();
OdbcCommand Command = new OdbcCommand("SELECT * FROM [" + sheetName + "]", ODBC_Connection);
Command.CommandType = System.Data.CommandType.Text;
DataReader = Command.ExecuteReader();
while (DataReader.Read())
{
field0 = DataReader.GetValue(0).ToString();
field1 = DataReader.GetValue(1).ToString();
field2 = DataReader.GetValue(2).ToString();
field3 = DataReader.GetValue(3).ToString();
field4 = DataReader.GetValue(4).ToString();
}
}
}
catch (Exception ex)
{
throw ex;
}
}
field4
是有问题的字段,其他字段的所有数据都正确地通过.GetValue(int)
方法。
如何在SELECT语句之前覆盖此字段的数据类型?谢谢
这已经有一段时间了,但我相信我通过使用OLEDB连接而不是ODBC解决了这个问题。