数据库已存在。 使用CreateDatabase()选择不同的名称
我遇到了一个问题并同时学到了一些东西……
我从现有的服务器数据库创建了一个DBML。
从DBML我想创建本地数据库(.mdf文件)。 我using DataContext.CreateDatabase("C:\xxxx.mdf")
创建了数据库。
然后我决定删除它(手动,这显然是一件坏事),因为当我尝试重新创建具有相同名称的数据库时(尽管文件被删除),我得到错误数据库已经存在。 使用CreateDatabase()选择不同的名称
我试过通过注册表,没有运气…我试图搜索整个硬盘驱动器的文件..没有运气。
谷歌搜索后,我发现你删除了一个用CreateDatabase()
创建的数据库和DeleteDatabase()
….然后你可以再次重新创建数据库。
问题是,现在我仍然无法重新创建旧数据库,因为系统认为名称已经存在。
有没有办法摆脱旧数据库文件的重组“不存在”
您需要通过Visual Studio中的server explorer
打开master数据库(添加新连接+选择master
数据库),然后添加New query
,键入Drop Database xxxx
并执行它。 您还可以使用Sql Server Management Studio.
一个解决方案(通过这里 )是使用SSEUtil来分离现有的数据库:
try { // open a connection to the database for test } catch (SystemException ex) // Change exception type based on your underlying data provider { if (ex.Message.ToLower().Contains("already exists. choose a different database name")) { var match = Regex.Match(ex.Message, "database '(.*)' already exists.", RegexOptions.IgnoreCase); if (match.Success) { String dbFileName = match.Groups[1].Value; Process p = new Process(); p.StartInfo.UseShellExecute = true; p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; p.StartInfo.FileName = String.Format("{0}/Tools/SSEUtil.exe", Environment.CurrentDirectory); p.StartInfo.WorkingDirectory = Environment.CurrentDirectory; p.StartInfo.Arguments = String.Format("-d \"{0}\"", dbFileName); p.Start(); } } }
我实际上也有同样的问题。 以前,我在mysqlserver2012中删除(剪切)了数据库并将其复制到我的应用程序文件夹中。 在我创建应用程序后,我遇到了这个错误,并通过删除我的连接字符串的Initial Catalog
部分来解决它。
您的最终连接字符串应如下所示:
Data Source=