在过去的几天里,我终于在研究如何使用 Entity Framework 将我的 C# 应用程序(我正在使用 Visual Studio 2010 Express)连接到我的 SQL Server 2008 R2 数据库,但我完全被卡住了。
当我想在 VS 中添加一个新的数据源时,我只是找到了我的 db 文件的路径,当我最终找到它并尝试选择它时,它会抛出一个错误,显示
该文件已被使用。输入新名称或关闭该文件,该文件由另一个应用程序使用
这对我来说听起来像是胡说八道,因为我已经两天没有使用我的数据库文件了。所以经过一番谷歌搜索后,我终于找到了一个解决方案,我进入了 SQL Server 配置管理器并重新启动了我唯一的 SQL Server。
然后我的 DataSource 连接终于可以工作了,我在想现在我是无与伦比的,我会写我的代码直到天结束,但几分钟后我又遇到了另一个问题:O(我在这里写的原因)。
当我在 VS 应用程序中使用SQL Server 的任何部分时,我的 SQL Server 将停止工作。我无法浏览那里的数据库,无法更改任何内容,无法使用查询,什么都没有。它只是告诉我这个数据库已经在使用中。
当我以相反的方式进行操作时也是如此。
我通过 SQL Server 配置管理器重新启动 SQL Server(以便能够再次使用 SQL Server),然后我,例如,使用我的数据库查询任务SELECT * FROM nameDatabase
。
然后我尝试调试我的 C# 应用程序,其中我有一个组合框,SQL Server 必须在其中填写一些名称,并且我得到 SQL Server 不可访问的错误。(我现在不能告诉你确切的错误,但在谷歌搜索后我发现这意味着 SQL Server 不可访问)。
如果有人想查看该代码,那么它是:
using (var entities = new PropertyDatabaseEntities())
{
var userNames = entities.Login
.Select(login => login.Username)
.ToArray();
comboboxLogin.Items.Clear();
comboboxLogin.Items.AddRange(userNames);
}
但是,当我在使用 SQL Server 中的任何内容之前重新启动 SQL Server 并打开此调试时,它就可以工作了。
有些人告诉我我没有关闭我的连接,但这不可能是真的,因为即使我先使用 SQL Server,我仍然无法使用 VS 和 SQL Server 之间的连接。
我真的被困住了。
*连接字符串
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
</configSections>
<connectionStrings><add name="Final.Properties.Settings.PropertyDatabaseConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename="C:\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\PropertyDatabase.mdf";Integrated Security=True;Connect Timeout=30;User Instance=True" providerName="System.Data.SqlClient" /><add name="LoginEntities" connectionString="metadata=res://*/DataAccess.LoginModel.csdl|res://*/DataAccess.LoginModel.ssdl|res://*/DataAccess.LoginModel.msl;provider=System.Data.SqlClient;provider connection string='Data Source=.\SQLEXPRESS;AttachDbFilename="C:\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\Login.mdf";Integrated Security=True;Connect Timeout=30;User Instance=True;MultipleActiveResultSets=True'" providerName="System.Data.EntityClient" /><add name="PropertyEntities" connectionString="metadata=res://*/DataAccess.PropertyModel.csdl|res://*/DataAccess.PropertyModel.ssdl|res://*/DataAccess.PropertyModel.msl;provider=System.Data.SqlClient;provider connection string='Data Source=.\SQLEXPRESS;AttachDbFilename="C:\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\Property.mdf";Integrated Security=True;Connect Timeout=30;User Instance=True;MultipleActiveResultSets=True'" providerName="System.Data.EntityClient" /><add name="PropertyDatabaseEntities" connectionString="metadata=res://*/DataAccess.PropertyDatabaseModel.csdl|res://*/DataAccess.PropertyDatabaseModel.ssdl|res://*/DataAccess.PropertyDatabaseModel.msl;provider=System.Data.SqlClient;provider connection string='Data Source=.\SQLEXPRESS;AttachDbFilename="C:\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\PropertyDatabase.mdf";Integrated Security=True;Connect Timeout=30;User Instance=True;MultipleActiveResultSets=True'" providerName="System.Data.EntityClient" /></connectionStrings>
</configuration>