【问题标题】:Importing csv with Freespire.xls adding blank row使用 Freespire.xls 添加空白行导入 csv
【发布时间】:2018-09-07 15:21:37
【问题描述】:

我目前有一个将.CSV 上传到DataTable 对象的工作流程。

从那里,我在 SQL 中有一个自定义的 DataTable 数据类型,以及一个存储过程,用于将传入的数据类型中的所有内容插入到 SQL 中的真实表中。

一切正常,数据被上传,唯一的问题是每隔一行,都是一行完全 NULL 值。电子表格之间没有空白行,但在某些情况下,列可能没有值。

是否有人对如何解决此问题或将我的 csv 导入 DataTable 的更好方法有任何建议或帮助?每次有人运行并保存的 oracle 查询时,该文件都会生成为 .CSV。

代码:

public static DataTable GetDataFromFile(string filePath)
{
    Workbook book = new Workbook();
    book.LoadFromFile(@"" + filePath, ",");
    DataTable table = book.Worksheets[0].ExportDataTable();
    return table;

}

编辑了问题,上面的代码在 .CSV 中添加了空行,或者 Excel 中有隐藏的换行符我看不到,我该如何修复这些空白行被添加。

【问题讨论】:

  • 仔细检查电子表格是否有额外的行尾字符 char() 这可能会导致额外的空白数据行。
  • 我该怎么做?最后一列是日期,但我看不到值中的换行符。当我将它放入 dgv 时,我将很快看到它的样子
  • 我使用像 Notepad++ 或programmers_notepad 这样可以显示行尾字符() 的文字编辑器。在 DataGridView 中查看数据也是一个好主意。
  • 是的,它仍然会出现,所以它一定是电子表格。我试过你说的,每一行都以09-JUL-18 05.15.10.000000000 PM结尾,没有引号也没有逗号。是否有一个奇怪的原因我不知道在 excel 或 csv 中发生这种情况
  • 刚刚发现我可以从 oracle 中导出为 Xlsx 文件 可能不得不这样做,尽管这很不幸

标签: c# excel csv


【解决方案1】:

使用 ODBC 的 Oracle 到 SQL

您可以使用 odbc 将 oracle 数据库连接到 sql 数据库,然后将数据直接传输到 temp 表中。

司机:Oracle ODBC Drivers

用法:Connect to an Oracle Data Source (SQL Server Import and Export Wizard)

本主题向您展示如何从 SQL Server 导入和导出向导的选择数据源或选择目标页面连接到 Oracle 数据源。您可以使用多个数据提供程序连接到 Oracle。

重要

连接到 Oracle 数据库的详细要求和先决条件超出了这篇 Microsoft 文章的范围。本文假设您已经安装了 Oracle 客户端软件并且您已经可以成功连接到目标 Oracle 数据库。有关详细信息,请咨询您的 Oracle 数据库管理员或 Oracle 文档。

使用 .Net Framework Data Provider for Oracle 连接到 Oracle 在向导的选择数据源或选择目标页面上选择适用于 Oracle 的 .NET Framework 数据提供程序后,该页面会显示提供程序选项的分组列表。其中许多是不友好的名称和不熟悉的设置。幸运的是,您只需提供两到三条信息。您可以忽略其他设置的默认值。

注意

无论 Oracle 是您的源还是目标,此数据提供者的连接选项都是相同的。也就是说,您在向导的选择数据源和选择目标页面上看到的选项是相同的。

Oracle 属性的必需信息 .Net Framework 数据提供程序 服务器名称 数据源 身份验证(登录)信息用户 ID 和密码;或者,集成安全 您不必在列表的 ConnectionString 字段中输入连接字符串。为 Oracle 服务器名称(数据源)和登录信息输入单独的值后,向导会根据各个属性及其值组合连接字符串。

使用 .NET 提供程序连接到 Oracle

使用适用于 Oracle 的 Microsoft ODBC 驱动程序连接到 Oracle ODBC 驱动程序未列在数据源的下拉列表中。要连接 ODBC 驱动程序,首先在“选择数据源”或“选择目标”页面上选择 .NET Framework Data Provider for ODBC 作为数据源。此提供程序充当 ODBC 驱动程序的包装器。

这是您在为 ODBC 选择 .NET Framework 数据提供程序后立即看到的通用屏幕。

之前使用 ODBC 连接到 Oracle

要指定的选项(用于 Oracle 的 ODBC 驱动程序) 注意

无论 Oracle 是您的源还是目标,此数据提供程序和 ODBC 驱动程序的连接选项都是相同的。也就是说,您在向导的选择数据源和选择目标页面上看到的选项是相同的。

要使用 ODBC Driver for Oracle 连接到 Oracle,请组合一个包含以下设置及其值的连接字符串。完整连接字符串的格式紧跟在设置列表之后。

提示

获取组装正确连接字符串的帮助。或者,不提供连接字符串,而是提供现有的 DSN(数据源名称)或创建一个新的 DSN。有关这些选项的详细信息,请参阅连接到 ODBC 数据源。

司机

ODBC 驱动程序的名称,Microsoft ODBC for Oracle。

服务器

Oracle 服务器的名称。

用户名和密码

要连接的用户名和密码。

连接字符串格式

这是典型连接字符串的格式。

复制 Driver={Microsoft ODBC for Oracle};Server=myServerAddress;Uid=myUsername;Pwd=myPassword;

输入连接字符串

在选择数据源或选择目标页面的连接字符串字段中输入连接字符串,或在 Dsn 字段中输入 DSN 名称。输入连接字符串后,向导会解析字符串并在列表中显示各个属性及其值。

这是您输入连接字符串后看到的屏幕。

使用 ODBC 连接到 Oracle

我的 Oracle 服务器名称是什么? 运行以下查询之一以获取您的 Oracle 服务器的名称。

从 v$instance 中选择主机名

SELECT sys_context('USERENV','SERVER_HOST') FROM dual

其他数据提供者和更多信息

有关如何使用此处未列出的数据提供程序连接到 Oracle 的信息,请参阅 Oracle 连接字符串。此第三方网站还包含有关数据提供者和此页面上描述的连接参数的更多信息。

【讨论】:

  • 老实说,当我第一次开始这个项目时,我计划连接到服务器本身,但很快意识到 oracle 是 SQL 的另一个领域,但你只是给了我一个 S+ 的答案。我会让你知道我是如何使用它的。
猜你喜欢
  • 1970-01-01
  • 2020-04-07
  • 1970-01-01
  • 2013-01-19
  • 2016-12-31
  • 2018-06-07
  • 2019-02-06
  • 1970-01-01
  • 2021-03-07
相关资源
最近更新 更多