Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
can';找不到sqlite文件,不确定c#在做什么_C#_Sqlite_Filesystems_Database Connection_Database Create - Fatal编程技术网

can';找不到sqlite文件,不确定c#在做什么

can';找不到sqlite文件,不确定c#在做什么,c#,sqlite,filesystems,database-connection,database-create,C#,Sqlite,Filesystems,Database Connection,Database Create,我有一个工作正常的程序,我可以从程序中访问数据库。。。但我的问题是。。。数据库在我的计算机上没有位置。。。至少在我能找到的地方。我尝试搜索所有的.db文件,但它不在那里。我希望能够将此文件复制到我正在制作的程序中,并将其备份到其他地方。但是我找不到它。我使用安装程序将其正确安装到我名下的程序文件中,这也可以工作,程序运行并从数据库读取数据。下面是我用来创建db的代码,因为如果您试图打开连接但文件不存在,sqlite将创建db。B 我查一下 public void createDB() {

我有一个工作正常的程序,我可以从程序中访问数据库。。。但我的问题是。。。数据库在我的计算机上没有位置。。。至少在我能找到的地方。我尝试搜索所有的.db文件,但它不在那里。我希望能够将此文件复制到我正在制作的程序中,并将其备份到其他地方。但是我找不到它。我使用安装程序将其正确安装到我名下的程序文件中,这也可以工作,程序运行并从数据库读取数据。下面是我用来创建db的代码,因为如果您试图打开连接但文件不存在,sqlite将创建db。B

我查一下

public void createDB()
    {
        string path = Path.GetDirectoryName(Assembly.GetAssembly(typeof(sqlLib)).CodeBase);
        string[] brokenPath = path.Split('\\');
        path = "";
        for (int i = 1; i < brokenPath.Length; i++)//parse file name and rebuild to remove wrong chars
        {
            path += brokenPath[i];
            if (i < brokenPath.Length - 1)
                path += "\\";
        }

        MessageBox.Show(path);

        if (!File.Exists(path += "\\fman.db"))
        {
            MessageBox.Show("File doesn't exist");
            SQLiteConnection db = dbConnect();
            popDB(db);
            dbClose(db);
        }
因此,我可以很好地访问数据库并读取/写入文件,但我在任何地方都找不到该文件。如果我在调试模式下工作,它就在bin/debug文件中,但是当我安装它时,它会去哪里


泰大家都很友好地提前向我求助

这件事发生在我身上时,让我挠头了好一阵子


我终于在我的个人资料中的
AppData\Local\VirtualStore
文件夹中找到了我的数据库文件。

你要将它安装到哪里?它被安装到程序文件中,因此程序文件/Alternate/FileMan是它所在的位置,但db文件不在该目录中OK,这是一个非常本地化的问题。如果您无法确定从何处读取数据库,那么我建议您查看创建数据库的位置。我在运行应用程序的目录中创建了数据库,但它没有出现在那里。所以我不知道如何找到它,这是我的问题。我无法复制它,因为该文件不在程序文件文件夹中。你也在尝试这个吗?是的,我应该更新这个。至于原因,我仍然不是100%确定,但据我所知,Windows现在无声地使用AppData中的文件夹,而不是写入项目程序目录。我不知道为什么它是无声的,但这只是windows处理它的方式。如果解释一下为什么这样做,以及如何重定向到程序文件中,那将是一件有趣的事情。
static public SQLiteConnection dbConnect()
    {
        string ConnectString = "Data Source = fman.db;";
        SQLiteConnection db = new SQLiteConnection(ConnectString);
        db.Open();
        return db;
    }