当我尝试连接到Web服务时,我收到以下异常
System.Data.SqlClient.SqlException:尝试为文件DatabaseName.mdb附加自动命名的数据库失败。存在具有相同名称的数据库,或者无法打开指定的文件,或者它位于UNC共享上。
我使用的连接字符串是:
Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|WS_Assignment.mdb;uid=Admin;pwd="
providerName="System.Data.OleDb"
我正在尝试访问本地系统上的SQL Server。
我经历了很多文章并且遵循了所有不同的方法。但我没有解决方案。
任何人都可以帮助我吗?
答案 0 :(得分:0)
在Solution Explorer
中,点击"Show All Files".
,然后转到App_Data
文件夹并删除WS_assignment.mdb
,然后运行您的应用。
此外,您的提供商错了
providerName="System.Data.SqlClient" is the right one.
其次,对于SQL Server,您的数据库名称应以.mdf
或.sdf
结尾。
因此,您的连接字符串将变为:
<connectionStrings>
<add name="ConnectionStringName"
connectionString="Data Source=|DataDirectory|WS_Assignment.sdf"
providerName="System.Data.SqlClient"/>
</connectionStrings>
答案 1 :(得分:0)
在编辑问题之前:
您是在Web服务器上部署,而不是在本地主机上部署。如果是这种情况,您需要在服务器数据库中发布sql脚本,因为服务器不允许部署中的attachDB文件,如果是这样,那么问题就解决了。
更新后 你总是可以尝试使用fullpath,是的,你需要OLEDB调用而不是sql,确保你的.cs代码不是这样的
您的问题中的更正:
我正在尝试访问本地系统上的SQL服务器
: 我不明白你怎么能用.mdb文件做到这一点;即使不是这样,也要确保sql服务在你的系统中正常运行,转到 - > gt;开始按钮 - &gt;程序文件 - &gt; microsoft sql server yourversion-&gt;配置管理器 - &gt;检查正在运行的服务。
答案 2 :(得分:0)
检查一下。
http://msdn.microsoft.com/en-IN/library/5ybdbtte%28v=vs.71%29.aspx
使用Access需要 System.Data.OleDb 库