不支持关键字:'版本'

时间:2013-01-22 16:04:34

标签: c# wpf sqlite

我有一个我在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项目?在处理数据库连接时是否有某些变化?

另外,请注意,这不是关于参数化查询等的问题。所以,如果可能的话,请将这些评论告诉自己。谢谢。

1 个答案:

答案 0 :(得分:7)

我遇到的问题是因为我试图创建SqlConnection而不是SQLiteConnection。做出改变解决了我的问题。