SQLite ODBC只读连接字符串VSTO Excel查询

时间:2013-04-10 20:28:46

标签: c# excel sqlite vsto

我在创建SQLite ODBC只读连接时遇到问题。

我的问题是:

如何将ODBC SQLite连接字符串设为只读?

我正在研究从SQLite数据库下载查询的C#应用​​程序。用户将提供SQL语句。

我将查询作为VSTO对象Excel.QueryTable下载到Microsoft Excel。此VSTO对象的要求之一是它需要ODBC连接字符串。这是我的连接字符串:

ODBC; DRIVER={SQLite3 ODBC Driver}; Database=myDb.db;Read Only=True;

应用程序正常运行,因此它运行查询并将其下载到Excel,但连接字符串不是只读的。我想要阻止人们更改数据库,只传递SELECT SQL语句。

因此,即使我的连接字符串包含Read Only = True,用户也可以对数据库进行更改。我将连接字符串传递给名为Export的方法,如下所示:

我创建了一个名为

的类

class ExcelQueryTable

处理导出为ex​​cel。

构造函数引用Excel应用程序

public ExcelQueryTable(Excel.Application ExcelApp)

此类具有执行导出的方法

    public void Export(string StartCell, string Connection, string CommandText)
    {
        Excel.Worksheet sheet = null;
        Excel.Range rng = null;
        Excel.QueryTable qry = null;

            //add query table                          
            sheet = wb.ActiveSheet as Excel.Worksheet;
            rng = sheet.get_Range(StartCell);
            qry = sheet.QueryTables.Add(Connection, rng, CommandText);

            //retreive data
            qry.EnableRefresh = false;
            qry.FillAdjacentFormulas = true;
            qry.Refresh(); 
    }

0 个答案:

没有答案