我决定使用C#在ASP.NET MVC中开始编程 我一直在关注教程并将它们实现到我自己的项目中。
一旦我点击Chrome / Firefox等中的Debug,我的数据库连接就会关闭(出现红叉)! (但是当我手动刷新它时,它有一个勾 - 直到那一点)我感觉它与web.config中的connectionString有关。我不喜欢连接字符串,对我来说,他们似乎充满了行话。您真正需要多少个参数来进行测试项目?
<connectionStrings>
<add name="PetsDBEntities" connectionString="metadata=res://*/MainDBModel.csdl|res://*/MainDBModel.ssdl|res://*/MainDBModel.msl;provider=System.Data.SqlClient;provider connection string="data source=(LocalDB)\v11.0;attachdbfilename=|DataDirectory|E:\Visual Studio 2013\Projects\Pets\Pets\App_Data\PetsDB.mdf;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework""
providerName="System.Data.EntityClient" />
</connectionStrings>
不幸的是,我对c#/ asp.net mvc的了解非常有限,因此遵循了一个教程,但我知道你们这些人真的很擅长你的工作。
名为PetsDBEntities的数据库具有以下属性。
数据源:Microsoft SQL Server数据库文件(SQL客户端) 数据库文件名:projects / app_data / PetsDB.mdf
如果我右键单击数据库并单击&gt;修改连接然后单击测试连接我得到“此连接无法测试,因为指定的数据库文件不存在”
这是代码中断的地方。注意:提交的值将被传递,它似乎无法连接并将该行添加到数据库中。
if (ModelState.IsValid)
{
using( var db = new PetsDBEntities())
{
var crypto = new SimpleCrypto.PBKDF2();
var encrpPass = crypto.Compute(user.Password);
var regUser = db.Users.Create();
regUser.Email = user.Email;
regUser.Password = encrpPass;
regUser.PasswordSalt = crypto.Salt;
regUser.UserID = Guid.NewGuid();
db.Users.Add(regUser);
db.SaveChanges(); //--------THIS IS WHERE I GET AN ERROR---------
return RedirectToAction("Index", "Pictures");
}
}
else
{
ModelState.AddModelError("", "Login Data is incorrect!");
}
return View();
希望这些信息足以让你们找到问题所在。 Thansk对任何可以帮助的人都有帮助!同样,我是新手,并不完全确定完全需要哪些信息。
答案 0 :(得分:2)
你的问题很可能是db filename。
attachdbfilename=|DataDirectory|E:\Visual Studio 2013\Projects\Pets\Pets\App_Data\PetsDB.mdf;
应该是:
attachdbfilename=|DataDirectory|\PetsDB.mdf;
答案 1 :(得分:0)
也许this可以提供帮助吗?
SQL Server的简单连接字符串可以是Server=myServerAddress;Database=myDataBase;User Id=myUsername;
Password=myPassword;
答案 2 :(得分:0)
您提到当您单击测试连接时,您收到错误。您的问题标题可能会产生误导,因为我可以假设您根本没有建立连接。
你能去“服务器资源管理器” - &gt; “数据连接” - &gt; “添加连接” - &gt; “Microsoft SQL Server数据库文件”,我假设您直接使用.mdf文件而不是连接到SQL服务器?
单击“测试连接”,如果一切顺利,您可以从属性中检索连接字符串。