Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.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
C# SqlLite 3-“;“无法打开数据库”;_C#_Sqlite_Asp.net Mvc 4_Ado.net_Asp.net Web Api - Fatal编程技术网

C# SqlLite 3-“;“无法打开数据库”;

C# SqlLite 3-“;“无法打开数据库”;,c#,sqlite,asp.net-mvc-4,ado.net,asp.net-web-api,C#,Sqlite,Asp.net Mvc 4,Ado.net,Asp.net Web Api,我已经创建了一个SQLLite3DB文件,并将其放在项目的App_数据文件夹(ASP.NETWebAPI)中。我似乎无法连接到它。异常消息是模糊的,我无法确定是什么错误。权限?找不到文件?不知道 我已在我的web.config中创建了以下connectionString条目: <connectionStrings> <add name="LiteConnection" connectionString="Data Source=~\App_Data\repository.s3

我已经创建了一个SQLLite3DB文件,并将其放在项目的App_数据文件夹(ASP.NETWebAPI)中。我似乎无法连接到它。异常消息是模糊的,我无法确定是什么错误。权限?找不到文件?不知道

我已在我的web.config中创建了以下connectionString条目:

 <connectionStrings>
<add name="LiteConnection" connectionString="Data Source=~\App_Data\repository.s3db;Version=3;" />

尝试将您的连接字符串更改为:

 connectionString="Data Source=|DataDirectory|\repository.s3db
DataDirectory是一个替代字符串,指示 数据库它消除了硬编码完整路径的需要 这会导致几个问题,因为数据库的完整路径可能是 在不同的地方序列化。DataDirectory还可以方便地 共享项目并部署应用程序


参考

您会遇到什么异常?因此,如果您在调试期间单步执行此代码,_dbLitePath的值是多少?如果它不是完整的系统路径,例如“C:\whatever”,那么这就是您的问题。例外情况正如我所说的。“无法打开数据库文件”-没有帮助:)我正在尝试。它不要求我在代码中“做”替换吗?i、 e.提供DataDirectory您可以使用
AppDomain.CurrentDomain.SetData(“DataDirectory”、“…”)在代码中更改位置(在尝试任何数据访问代码之前)
但是字符串| DataDirectory |应该已经在那里了。您不能将DB连接字符串指向相对URL。这些仅适用于Web框架,而不适用于ODBC驱动程序。按照Steve的建议使用数据目录。默认情况下,它是项目下的App_数据文件夹。由于我使用的是CTX.Server.MapPath(@“App_Data\TranslatorDB.sl3”);它在.NET表单中工作,但不是MVC!!!天哪!
 connectionString="Data Source=|DataDirectory|\repository.s3db