在新PC中运行项目时出现此错误。为了避免这种情况,我必须每次都复制粘贴新的连接字符串..有什么办法可以避免这种情况...我有3个不同的数据库及其非常烦人的O_O
SqlConnection con = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=D:\\Users\\Yoro\\Desktop\\WAPent 3.0 (1)\\WAPent 3.0\\WAPent 3.0\\WAPent 2.0\\WAPent 2.0\\App_Data\\LoginStuff.mdf;Integrated Security=True;User Instance=True");
Web配置代码
<connectionStrings>
<add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true"
providerName="System.Data.SqlClient" />
<add name="ConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\LoginStuff.mdf;Integrated Security=True;User Instance=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
答案 0 :(得分:4)
在web.config中,您正在使用| DataDirectory |这是替换数据目录的路径。这是通过使用
设置的AppDomain.CurrentDomain.SetData("DataDirectory", newpath)
当你没有设置| DataDirectory |时当它是一个Web项目时,它默认为App_Data文件夹。 因此,查看代码时,DataDirectory表示的路径可能不包含数据库文件。
有关datadirectory的更多信息,请查看此(较旧的)article。
答案 1 :(得分:3)
打开服务器资源管理器,右键单击数据库,选择右下角的属性。将出现一个属性窗口;复制连接字符串并在您的应用程序中使用它。例如,在我的应用程序中:
SqlConnection sconnection = new SqlConnection(@"Data Source=(LocalDB)\v11.0;
AttachDbFilename=C:\Users\Taha\Documents\Visual Studio 2013\Projects\Finder\Finder\App_Data\Userdb.mdf;
Integrated Security=True;MultipleActiveResultSets=True;Application Name=EntityFramework");
sconnection.Open();
答案 2 :(得分:2)
这个问题通常发生在VS 2012中,我也遇到过这个问题。 要解决它,您需要愚弄这些步骤: 1)右键单击.mdf文件 - &gt;选择服务器资源管理器下的修改连接。 2)弹出窗口将出现 - >单击高级按钮 - &gt;选择(LocalDB)\ v11.0作为DataSource值
还要确保在webconfig文件中对DataSource =(LocalDB)\ v11.0进行更改 你做完了。生活!!
答案 3 :(得分:0)
首先,您的数据库必须位于项目中bin文件夹以外的其他位置; 然后,您的连接必须声明如下:
SqlConnection con = new SqlConnection(TABLE1TableAdapter.Connection.ConnectionString);
如果您有DataGridView,可以单击Choose Data Scource,并将您的表作为数据库的源添加。(在我的示例中,该表名为TABLE1。)然后,visual studio自动创建DataSet,DataBinding和一个TableAdapter。 TableAdapter(TABLE1TableAdapter)包含数据库所需的ConnectionString作为属性。 附:我有这个问题,经过大量的工作,我找到了这个解决方案。我希望它对你也有所帮助。
答案 4 :(得分:0)
当我在同一个DBContext中使用两个连接字符串时出现此错误,例如我尝试在连接字符串中连接到sql server并在另一个连接字符串中连接到sql express文件:
public MyDBContext(bool autoDetectChangesEnabled)
: base("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\MyDB.mdf;User Instance=false;Integrated Security=True;MultipleActiveResultSets=True")
{
Initialize(autoDetectChangesEnabled);
}
public MyDBContext()
: base("data source=(LOCAL)\\SQLEXPRESS;initial catalog=MyDB;persist security info=True;user id=user;password=pass;MultipleActiveResultSets=True;App=EntityFramework")
{
Initialize(true);
}
答案 5 :(得分:-1)
退出Visual Studio。
再次运行Visual Studio。
不要从上一个程序列表打开项目,使用打开项目打开它 - &gt;浏览程序。
转到服务器资源管理器:如果.mdf文件图标有一点红色X,则创建一个新表,无需在表中输入任何内容。只需更新它。
首先,您会看到提示:选择否。
在第二个提示中,选择 YES :小红色X应该消失。
删除刚刚创建并更新的表格。
这解决了我的问题。