.NETからSQLServerに接続できない・・・
C#でSQLServer2008R2 Expressに作ったDBに接続するアプリを作っていたんですが、
いざ、データベースに接続しようとすると「ファイル xxx.mdf の自動的に名前が付けられたデータベースをアタッチできませんでした。同じ名前のデータベースが既に存在するか、指定されたファイルを開けないか、UNC共有に配置されています。 」とかいうエラーが。
接続文字列を間違えたかと思ってVisutalStudioのデータベースエクスプローラから接続してみようとしたんですが、同じエラーが出て失敗。。。
色々と調べてみた結果、どうも旧バージョンのSQLServerのゴミが残ってたのが原因でした。
C:Users{ユーザー名}AppDataLocalMicrosoftMicrosoft SQL Server DataSQLExpress
にあるファイルを削除して、SQLServerのサービスを再起動したところ無事解決しました。
(上記のパスはWindows7の場合ですね。
XPの場合は C:Documents and Settings{ユーザー名}Local SettingsApplication Data~ に変わります。)
僕の開発環境は、
・Windows7 Home Premium (x86)
・VisualStdio2010 Express
・SQLServer 2008R2 Express
なんですが、
SQLServer2008を入れるのに一悶着ありまして。
当初、SQLServer2008Express(無印)をインストールしたんですが、何故かSQLServer Management Studioがインストールされなくて困ってたんですよ。
どうも無印SQLServer2008はWindows7に対応してなかったみたいで(Vistaに対応してたからてっきり行けるもんだと・・・orz)
それで色々試行錯誤しながらインストールしたり消したりしてたんですが、その時の残骸が原因だったみたいです。
SQLServer2005も入ってたし。
アンインストールでゴミが残るのって一番めんどくさいですね。。。