小弟今天遇到一个小问题,在读取Excel数据时,想把Excel里的数据全部转换成文本格式:
DataTable dtExcel = new DataTable();
OleDbCommand oOleDbCommand = new OleDbCommand("SELECT CAST([科目编码] AS VARCHAR(100)),[科目名称],[科目级别],[科目说明] FROM [Sheet1$]", conn);
OleDbDataAdapter oDa = new OleDbDataAdapter(oOleDbCommand);
oDa.Fill(dtExcel);
执行之后会报错 :IErrorInfo.GetDescription 因 E_FAIL(0x80004005) 而失败。
如果"SELECT CAST([科目编码] AS VARCHAR(100)),[科目名称],[科目级别],[科目说明] FROM [Sheet1$]" 改成"SELECT [科目编码],[科目名称],[科目级别],[科目说明] FROM [Sheet1$]" 就没有问题,请问这是怎么回事,我现在的要求是把某一列的值转成varchar型。
DataTable dtExcel = new DataTable();
OleDbCommand oOleDbCommand = new OleDbCommand("SELECT CAST([科目编码] AS VARCHAR(100)),[科目名称],[科目级别],[科目说明] FROM [Sheet1$]", conn);
OleDbDataAdapter oDa = new OleDbDataAdapter(oOleDbCommand);
oDa.Fill(dtExcel);
执行之后会报错 :IErrorInfo.GetDescription 因 E_FAIL(0x80004005) 而失败。
如果"SELECT CAST([科目编码] AS VARCHAR(100)),[科目名称],[科目级别],[科目说明] FROM [Sheet1$]" 改成"SELECT [科目编码],[科目名称],[科目级别],[科目说明] FROM [Sheet1$]" 就没有问题,请问这是怎么回事,我现在的要求是把某一列的值转成varchar型。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货