- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
正在尝试从*.XLS 文件 中读取数据。我能够读取所有单元格字符串,但无法读取单元格中的数字。我尝试使用 .ToString() 方法但没有成功。取回数据库 null。
代码:
public xlsConverter(string excelFilePath, int numColumns)
{
string cnnStr = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}; Extended Properties='Excel 8.0;HDR=No;'", excelFilePath);
string queryStr = "SELECT * FROM [Sheet1$]";
using (OleDbConnection connection = new OleDbConnection(cnnStr))
{
OleDbCommand command = new OleDbCommand(queryStr, connection);
connection.Open();
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
for(int i = 0; i <= numColumns; i++)
{
cleanedString.AppendFormat("{0}{1}", (reader[i].ToString()), "|");
}
cleanedString.AppendLine();
}
reader.Close();
}
}
cleanedString.AppendFormat("Row[{0}], DataType[{1}], String[{2}], Column[{3}] |-|", counter, (reader[i]).GetType(), reader[i].ToString(), i);
产生:
Row[98], DataType[System.DBNull], String[], Column[4] |-|
第 4 列包含混合的字符串和数字,例如:1300、2341、5000、4000 (DED)、1243
尝试使用“GetInt、GetValue、Parse、‘casting’、ToString() 等”,但 null 是 null!有人想引导我朝着正确的方向前进吗?
示例 XLS 文件:
https://github.com/abflett/adamflett_ca
https://github.com/abflett/adamflett_ca/blob/master/sample.xls
最佳答案
进行了一些挖掘,但最终得到了一个简单的修复。
连接字符串是问题所在。
string cnnStr = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}; Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;ImportMixedTypes=Text;TypeGuessRows=0'", excelFilePath);
ImportMixedTypes=Text;TypeGuessRows=0
^已添加!
我在以下位置找到的 Youtube 视频: https://www.youtube.com/watch?v=jhPp_Hz54BU
并且已经在 stackoverflow 上回答过: Help with a OleDB connection string for excel files
关于c# - OleDbDataReader 如何读取数字类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36723035/
我有以下代码: OleDbDataReader xlsReader = new OleDbCommand("Select * from [" +spreadSheetName +
我目前正在构建一个程序,该程序将用户之间的消息存储在数据库中,并在按下下面的按钮时将这些消息返回给用户。我正在使用一个使用 OleDbConnection 和 DataReader 的 SQL CE
正在尝试从*.XLS 文件 中读取数据。我能够读取所有单元格字符串,但无法读取单元格中的数字。我尝试使用 .ToString() 方法但没有成功。取回数据库 null。 代码: public xlsC
我做了一个程序,它读取数据库中的数据 我使用 OleDbDataReader 但问题是我有不同的表,这个代码工作得很好,但我发现它有点“硬编码”或 recursive 这是我的示例代码
读取 xlsx 文件时遇到一个非常奇怪的问题(我正在使用 OleDbDataReader)。 我有一列包含以下数据: 50595855 59528522 C_213154 23141411 问题是,当
我的 OleDb 访问数据库连接正确地计算了数据库表中的行(条目)数,但是当涉及到使用 for 循环读取其中一个字段的每个实例时,我得到的错误是在获取表中第一个条目的用户名 (teacher_id/s
为了重构我的一些代码,我添加了一个函数来设置 OleDbDataReader . 由于某种奇怪的原因,我得到的返回值是 System.Data.Common.DbDataRecord . 就在函数返回
在它下面是我用来连接到 Access 数据库并从查询中提取值的代码。问题是..我无法从读者对象中取回任何值。我可以看到行数正确,但是我不断收到 InvalidOperationException(无论
我想从 C# 中的 OleDbDataReader 获取检索到的记录数? strQuery = "SELECT * FROM Table_Name" ; d
使用 DataReader 连接到数据库后,如何计算行数? 谢谢。 最佳答案 数据读取器只是前向的,所以他们在第一次填充时没有计数。你可以做几件事来解决这个问题: 运行一个单独的命令来获取计数或使用
这是我的代码: OleDbConnection connection = new OleDbConnection( "Provider=Microsoft.ACE.OLEDB.12.0;Data
我有一个 Excel 表,显示部门明智的员工工资详细信息。只是我需要将这些详细信息保存到 MySql 中。 当我使用 oledbdatareader 时,它从第一行开始读取。但我必须从不同的行中进行选
我正在尝试使用 MS 访问数据库更改密码选项.... 请大家帮帮我.... 这里是代码:默认.aspx.cs protected void Button1_Click(object sender, E
我一直在处理一个项目(使用 Visual Studio 2013),我需要从本地存储的 MS Access 2007 数据库中检索信息。我现在正在使用 OleDb 来处理连接。数据库有一个表,有几个字
我是一名优秀的程序员,十分优秀!