首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# ace oledb 12只读文件

C# ace oledb 12只读文件
EN

Stack Overflow用户
提问于 2017-07-18 11:30:21
回答 1查看 1K关注 0票数 0

我有一个带有脚本任务的SSIS包。c#脚本使用ACEOledb12.0提供程序连接到excel文件。问题是,如何连接到excel文件在只读模式(如果有人打开文件,我的脚本不应该有一个错误-它应该工作)。密码,我试过了:

代码语言:javascript
复制
string fileToTest = Dts.Variables["User::FileName"].Value.ToString();
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" +
    "Data Source=" + fileToTest + @";Extended Properties=""Excel 8.0;READONLY=1""";
OleDbConnection excelConnection = new OleDbConnection(connectionString);
excelConnection.Open();

string sqlQuery = "SELECT * FROM [SheetName$A1:FZ1000]";
OleDbDataAdapter dataAdt = new OleDbDataAdapter(sqlQuery, excelConnection);
DataSet dataSt = new DataSet();
dataAdt.Fill(dataSt, "TblName1");
DataTable dataTbl = dataSt.Tables["TblName1"];

如果有人打开文件我会收到oledbexception。

EN

回答 1

Stack Overflow用户

发布于 2017-07-18 11:54:16

使用谷歌搜索。

我搜索:"microsoft.ace.oledb.12.0只读“

https://social.msdn.microsoft.com/Forums/office/en-US/498cd52a-b0ee-4c8d-8943-2b76055b4130/oledbconnection-read-only-mode?forum=accessdev

看起来您可以添加到连接字符串中。

来自该页面的

实际上,使用OleDbConnection (假设这里是.net )。可以在OleDbConnection的连接字符串中指定只读模式。以下连接字符串将阻止您更改数据源中的数据:

代码语言:javascript
复制
const string cnnString = "Provider=Microsoft.ACE.OLEDB.12.0" 
      + ";Mode=Read" 
      + @";Data Source=|DataDirectory|\Northwind 2010.accdb";

看起来,将;Mode=Read添加到连接字符串应该可以做到这一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45165570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档