4

友人がデータベース ファイルをくれました: record.mdf. .mdfそのファイルを自分のフォルダーにコピーしたので、app_dataアクセスできます。

ただし、接続文字列には絶対パスが含まれています。

AttachDbFilename="C:\Users\Dell\Documents\Visual Studio 2010\Projects\WebApplication2\WebApplication2\App_Data\record.mdf"

しかし、次を使用して接続したい:

Data Source=localhost\SQLEXPRESS;

.mdf接続文字列がデータベースへの絶対パスを使用しないように、ファイルを SQL Server のローカル フォルダーにコピーするにはどうすればよいですか?

Visual Studio 2010を使用しています。SQL Server Management Studio を持っていません。

4

2 に答える 2

6

Step 1: you need to find out your SQL Server's data directory. This will be something like

C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data

by default (for SQL Server 2008 R2 Express) - it might be slightly different in your case, depending on how you installed your SQL Server Express (and which version you have).

Step 2: copy that record.mdf file to that directory

Step 3: attach it to your SQL Server Express instance - using sqlcmd if you don't have Mgmt Studio at hand:

c:\> sqlcmd -S .\SQLExpress 

Then at the sqlcmd prompt, type in:

USE [master]
GO
CREATE DATABASE record ON 
   (FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\record.mdf' )
FOR ATTACH_REBUILD_LOG;
GO

This will attach the .mdf file as your new "logical" database record to your SQL Server Express instance, and it will rebuild the missing transaction log file (.ldf) in the process.

From now on, you can use

server=.\SQLEXPRESS;Database=record;Integrated Security=SSPI;

as your connection string to connect to your database

于 2012-06-09T08:43:22.600 に答える
2

SQL サーバーのローカル フォルダーにコピーするのではなく、次を使用して App_Data ディレクトリからアクセスできます。|DataDirectory|\record.mdf

ドキュメント: http://msdn.microsoft.com/en-us/library/ms247257(v=vs.80).aspx

于 2012-06-09T08:33:25.223 に答える