使用另一个C#项目连接到ASP.NET SQL Express数据库

时间:2014-03-24 23:30:27

标签: c# asp.net sql .net sql-server-express

我目前正在开发一个项目,该项目有一个前端ASP.NET网站,用户将提交"订单"。然后,我需要使用另一个与多个串行端口交互的C#窗体应用程序访问此数据库中的特定表。 (我没有和这个想法结婚,所以如果你认为为这两个功能设置一个网站更好的话,那我就是全心全意的)

无论如何,这个问题是关于能够拥有两个连接字符串的能力(一个来自ASP.NET,另一个来自本地程序。 - 两者都将在同一台计算机上运行

在C#端,我有一个连接字符串:

"AttachDbFilename=C:\\Users\\Jordan\\Documents\\Visual Studio 2012\\WebSites\\WebSite1\\App_Data\\MyxoData.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;"

使用此配置,当一个项目处于活动状态时,另一个项目无法访问数据库。

  

无法打开用户默认数据库。登录失败。用户' CMYK-164 \ Jordan'

登录失败

我感觉这是因为我在连接字符串中使用了Integrated Security = true而且" User Instance = True"特别是只允许一台计算机上的一个用户一次登录一个数据库......但是我找不到支持我理论的任何东西......或者解决问题。

任何建议都会非常感谢!

修改

连接字符串不是问题。当另一个应用程序不活动时,这两个应用程序都可以正常工这里的问题是从两个不同的C#应用​​程序建立到一个数据库的两个并发连接。

1 个答案:

答案 0 :(得分:1)

以Rafeal的回应为基础;您需要升级到SQL Server Express。

SQL Server Express LocalDB是一个精简版本,有很多限制;一个是它不支持并发连接。请参阅下面的链接 - 解释并发连接限制的部分可以在权限部分的最后一句中找到。

http://technet.microsoft.com/en-us/library/hh510202.aspx

您可以在此处安装SQL Server Express:

http://www.microsoft.com/en-us/server-cloud/Products/sql-server-editions/sql-server-express.aspx#fbid=xWTelsiKWFm

在Visual Studio中,您可以使用Database Explorer创建与新数据库的数据连接,以创建您需要的表和任何存储过程。

如果您不熟悉.Net和SQL Server,则可以使用System.Data.SqlClient命名空间轻松连接到SQL Server Express数据库。由于它是为SQL Server产品设计的,因此它被认为比使用ADO.Net或其他数据提供程序更有效。而且,至少,我发现它使用起来快捷方便。例如,由于提供程序是显式的,因此您无需在连接字符串中指定提供程序,从而导致字符串更短。有关连接字符串的更多信息,请参阅此页:

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring(v=vs.110).aspx

您可以在本页底部找到打开连接的C#和VB示例:

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.aspx