关键字不受支持: 'version'

6

我有一个在VS2010中编写的WinForms项目,现在我想在VS2012中将其转换成WPF项目。我引用了一个名为DailyReport的DLL文件,在其中有一个叫做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
请查看此链接:http://www.connectionstrings.com/sqlite,特别是最后一项。 - Mark Kram
@MarkKram:正如我之前对一个发布了答案然后又删除了问题的人所说的,我的数据库位于连接字符串中列出的路径。根据该链接中的“内存数据库”部分,我有正确的字符串。 - PiousVenom
2
你难道不需要使用实际的SQLite类来访问SQLite内存数据库吗?我非常确定微软的标准SqlConnection不知道如何连接到其中之一... =) - J. Steen
@J.Steen:您真是个天才。我知道我在做一些非常愚蠢的事情。数据源可以是文件路径,并且现在已经从SqlConnection更改为SQLiteConnection,它能够工作。谢谢。 - PiousVenom
随意将您的解决方案添加为自己的答案。我对 SQLite 一无所知,只是做了一个有根据的猜测而已。 ;) - J. Steen
1个回答

15

我的问题是因为我尝试创建一个SqlConnection而不是SQLiteConnection。进行更改解决了我的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接