【问题标题】:OLEDB Connection Specific ColumnsOLEDB 连接特定列
【发布时间】:2023-04-10 11:09:01
【问题描述】:

我有一个 OLEDB 数据连接,我只想将 A:O 列导入表中。

我可以导入所有数据...成功,但不限于这些列 (A:O)

我正在填充连接属性屏幕..

提前谢谢...

Provider=Microsoft.ACE.OLEDB.12.0;用户 ID=Admin;数据 源=文件路径;模式=读写;扩展 属性="IMEX=1;HDR=NO;string sql=""select * from ['SHEETNAME'$A:$O]""";Jet OLEDB:系统数据库="";Jet OLEDB:注册表 Path="";Jet OLEDB:引擎类型=35;Jet OLEDB:数据库锁定模式=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:新数据库密码="";Jet OLEDB:创建 系统数据库=False;Jet OLEDB:加密数据库=False;Jet OLEDB:不要 在 Compact=False 上复制区域设置;Jet OLEDB:Compact without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex 数据=假;Jet OLEDB:绕过用户信息验证=假;Jet OLEDB:Limited DB Caching=False;Jet OLEDB:绕过 ChoiceField 验证=真

【问题讨论】:

    标签: database connection oledb


    【解决方案1】:

    在 ['SHEETNAME'$A:$O] 中,您不需要在 SHEETNAME 和第二个 $ 周围加上单引号。像下面这样使用它:

    select * from [SHEETNAME$A:O]
    

    select * from [SHEETNAME$A1:O10000]
    

    我已成功使用带范围的 OleDB 选择语句,但未在连接字符串中指定,而是在 OleDB 命令中指定,例如:

    cmd = new OleDbCommand("SELECT * FROM [Template$A1:Q10000]", conn);
    

    或 在 SQL Server OPENROWSET 调用中:

    SELECT ' + @columnList + ' 
        FROM OPENROWSET(' +
        '''Microsoft.ACE.OLEDB.12.0'', ' +
        '''Excel 12.0;Database=' + @TemplateFilePath + ';HDR=YES;IMEX=1'', ' +
        '''SELECT * FROM [Template$' + @TemplateColumnsRangeStart + ':' + @TemplateColumnsRangeEnd + ']'')
    

    例如,@TemplateColumnsRangeStart='A5' 或 TemplateColumnsRangeEnd='Z'。

    如果这有帮助,请告诉我。

    附言。欢迎使用 StackOverflow,请查看 Tour 以开始提问、回答、投票等。

    【讨论】:

      猜你喜欢
      • 2013-03-24
      • 1970-01-01
      • 2016-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-07
      相关资源
      最近更新 更多