【问题标题】:Keyword not supported: 'version'不支持关键字:“版本”
【发布时间】:2013-01-23 05:25:07
【问题描述】:

我有这个项目,我在 VS2010 中作为 WinForms 项目编写。我不是在 VS2012 中将它作为 WPF 项目编写的。我有一个引用的 DLL (DailyReport)。在DailyReport 内部是一个名为GetUniqueDates() 的方法。它看起来像这样:

    public List<string> GetUniquesDates()
    {
        var dates = new List<string>();

        const string query = "SELECT date FROM hdd_local_data_v1_2";

        try
        {
            // Exception here  on the connection creation
            using (var connection = new SqlConnection(ConnectionStringFile)) 
            {
                using (var command = new SqlCommand(query, connection))
                {
                    connection.Open();

                    using (var reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            for (var i = 0; i < reader.FieldCount; i++)
                            {
                                dates.Add(reader.GetValue(i).ToString());
                            }
                        }
                    }
                }
            }
        }
        catch (Exception ex)
        {         
            Logger.Error(ex.Message);
        }

        dates.Sort();

        return dates.Distinct().ToList();
    }

ConnectionStringFile 在构造函数中设置,如下所示:

ConnectionStringFile = @"Data Source=C:\hdd_data\Rubicon.hdd;Version=3;New=False;Compress=True;";

现在,在我的 VS2010 WinForms 项目中,这种方法效果很好。但是,在我的 VS2012 WPF 项目中,我遇到了上面提到的异常。例外是:

keyword not supported 'version'.

该数据库是一个 SQLite 数据库。我试过删除 version 关键字,但后来我得到了异常:

keyword not supported 'new'.

我的问题是:为什么连接会在我的 WinForms 项目而不是我的 WPF 项目中工作?处理数据库连接时有什么变化吗?

另外,请注意,这不是关于参数化查询等的问题。所以,如果可能的话,请那些cmets给你自己。谢谢。

【问题讨论】:

  • 看看这个链接:connectionstrings.com/sqlite 特别是最后一项。
  • @MarkKram:正如我之前对一个将其作为答案发布然后删除他的问题的人所说的,我的数据库位于我的连接字符串中列出的路径中。根据那个链接,“内存数据库”部分,我有正确的字符串。
  • 您不需要使用实际的 SQLite 类来访问 SQLite 内存数据库吗?我很确定微软的标准 SqlConnection 不知道如何连接到其中之一... =)
  • @J.Steen:先生,您真是个天才。我知道我在做一些完全愚蠢的事情。 Data Source 可以是文件路径,它可以工作,现在我已经将它从 SqlConnection 更改为 SQLiteConnection。谢谢。
  • 随意添加您的解决方案作为您自己的答案。我对 SQLite 一无所知,只是在做一个有根据的猜测,真的。 ;)

标签: c# wpf sqlite


【解决方案1】:

我遇到的问题是因为我试图创建 SqlConnection 而不是 SQLiteConnection。进行该更改解决了我的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-06
    • 2019-07-08
    • 2017-07-04
    • 1970-01-01
    • 1970-01-01
    • 2021-01-03
    • 2012-03-03
    相关资源
    最近更新 更多