- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不知道为什么,但是当我使用 OleDbDataAdapter 或 OleDbCommand 读取 CSV 文件时,在这两种情况下,结果数据的结构都很好(它识别文件头中的列),但行数据都是空的字符串。
我以前做过很多次 CSV 处理并成功,所以我发现这个文件的唯一区别是文件中的所有字段都用引号引起来。
我试过使用 schema.ini 文件,但无济于事。这感觉像是 Microsoft Jet 4.0 组件的问题,但我无法弄清楚问题出在哪里。
这是文件的摘录:
"UNIQUEID","OWNERID","PHONE1","PHONE2","EMERGENCYCONTACT","ADDRESS1","ADDRESS2","ADDRESS3","ADDRESSCITY","ADDRESSSTATE","ADDRESSZIP","UNIONCODE","CUSTOM1","CUSTOM2","CUSTOM3","CUSTOM4","CUSTOM5","CUSTOM6"
"5","33","1235551212"," ","","1914 SANDFLAT ROAD","","","THOMASVILLE","AL","367849215","","contract","7.75","1","N","","A"
"6","34","1235551212"," ","","1407 OLD HWY. 5 SOUTH","","","THOMASVILLE","AL","36784","","contract","7.75","1","N","","B"
"7","35","1235551212"," ","","P.O. BOX 204","","","THOMASVILLE","AL","36784","","substitute","7.75","0","Y","","M"
"8","36","1235551212"," ","","383 UNCLE BEN RD","","","THOMASVILLE","AL","36784","","substitute","0.00","0","","",""
这是我当前的代码:
OleDbConnection conn = new OleDbConnection(
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\payroll;" +
"Extended Properties=\"text;HDR=Yes;FMT=CSVDelimited\"");
OleDbDataAdapter adapter = new OleDbDataAdapter("select * from file.txt", conn);
DataTable dt = new DataTable();
adapter.Fill(dt);
这里是 schema.ini 文件的内容。没有它我无法读取文件:
[file.txt]
Format=CSVDelimited
ColNameHeader=True
Col1="UNIQUEID" Text
Col2="OWNERID" Text
Col3="PHONE1" Text
Col4="PHONE2" Text
Col5="EMERGENCYCONTACT" Text
Col6="ADDRESS1" Text
Col7="ADDRESS2" Text
Col8="ADDRESS3" Text
Col9="ADDRESSCITY" Text
Col10="ADDRESSSTATE" Text
Col11="ADDRESSZIP" Text
Col12="UNIONCODE" Text
Col13="CUSTOM1" Text
Col14="CUSTOM2" Text
Col15="CUSTOM3" Text
Col16="CUSTOM4" Text
Col17="CUSTOM5" Text
Col18="CUSTOM6" Text
CharacterSet=ANSI
最佳答案
我发现了问题所在。 schema.ini 文件中的 CharacterSet 设置为 ANSI。文件编码为 Unicode。将 CharacterSet 设置为 Unicode 解决了这个问题。
关于c# - 使用 OleDbCommand/OleDbDataAdapter 读取 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4165342/
嘿,我正在使用 DataAdapter 读取 excel 文件并用该数据填充数据表。 这是我的查询和连接字符串。 private string Query = "SELECT * FROM Sheet
在我的应用程序中,我从本地 MS Access 数据库文件中获取一些数据。我对一个偶发问题感到困惑,我对特定表的所有记录的查询有时会返回所有记录,有时会返回除最后一条记录以外的所有记录。我正在使用以下
我在 sql server 表中有记录。我正在从 sql server 中填充 DataTable 中的所有记录,然后我想将所有记录插入访问表中。但是没有数据插入,插入时也没有发生错误。请提供需要的帮
我无法在 OleDbDataAdapter 中填充数据 我收到一个包含以下消息的 OleDbExceptionFROM 子句中的语法错误。 在这一行 adapter.Fill(dataset, "Us
我创建了一个包含两个表的数据库,然后我执行这段代码,但它对表没有任何作用。 private void CreateConstraint(DataSet dataSet, string table1,
我的 Windows 窗体应用程序包含 OleDbDataAdapter,从远程数据库获取数据需要花费更长的时间。它无法检索/保存 5000 行之类的表数据(应用程序受到攻击)。这是我的代码。 env
我正在使用 OleDbDataAdapter 读取数据集中 Excel 工作表的内容。 Excel 工作表由 20391 行组成,数据集在我的本地机器上运行时读取总行数,但在 IIS7.5 服务器上运
我正在尝试构建一个将读取 excel 文件(.xlsx、.xls)的应用程序。不幸的是,OleDbDataAdapter.Fill() 的性能非常糟糕。我最多需要 2 分钟才能从文件中读取一条记录。
我想在数据集中添加行,但只添加特定数量的行(为了避免“定义的字段过多”异常)。到目前为止,这是我尝试过的: OleDbCommand command = new OleDbCommand(@"SELE
我正在使用 C# 和 OleDb 访问 Oracle 数据库,我已经成功地从查询中提取数据,但是我无法使用 OleDbAdapter.Update() 更新数据库,我的更新代码如下。 (“适配器”是对
我的 Access 数据库中有一个这样的表 id name address date 1 first addresss 5/6/2005 9:17:52 AM 2 t
我正在使用 OleDbDataAdapter(准确地说是 Microsoft.ACE.OLEDB.12.0)从 Excel 工作簿中检索数据。对于一个表,我使用的是类型化数据集,但对于另一个表,我不能
有人能帮帮我吗?如何使用 OleDbDataAdapter 只读取 Excel 文件的第一行? 我知道如何从任何电子表格中读取所有数据: var dataAdapter = new OleDbData
我正在使用 OleDb 填充数据表。我正在尝试使用参数化查询,但它似乎不适用于 OleDbDataAdapter。有人有什么建议吗? cmd.CommandText = "SELECT A,B,C,D
我不确定我在这里做错了什么——在调试器中,对文件名所做的更改正确地应用于我为更新命令从中提取的数据集,但是当我检查之后数据库没有进行任何更改...所以我有点困惑... using (System.Da
首先,我想说我是在深水区,因为我只是对公司其他人编写的代码进行一些更改,使用 OleDbDataAdapter 与 Excel 进行“对话”,然后我'我不熟悉那个。那里有一个错误,我无法理解。 我正在
我正在使用 OleDbDataAdapter 从 excel 文件中提取 DataSet,但我在 SELECT 语句中遇到问题 DataSet excelDataSet = new DataSet()
我可以一次将一行添加到我的 Excel 电子表格中,但是速度非常慢(400 条记录需要 1 分钟,即使使用 Prepare 也是如此)。所以,我知道 Sql 是有效的并且 DataTable 是好的。
我不知道为什么,但是当我使用 OleDbDataAdapter 或 OleDbCommand 读取 CSV 文件时,在这两种情况下,结果数据的结构都很好(它识别文件头中的列),但行数据都是空的字符串。
我正在尝试获取一个 DataTable,读取一个 .xls 文件。如果我使用大小为 25kb 的 .xls 文件运行以下代码,它工作正常,但如果我加载更大的文件 (7,52MB),它就不起作用。 st
我是一名优秀的程序员,十分优秀!