2015-09-07 2 views
1

У меня есть подключение к SQL работает здесь:C# attachmentFilename окна приложения

SqlConnection conn = 
    new SqlConnection(@"server=localhost\SQLEXPRESS; 
         AttachDbFilename=C:\Seach ENGINE (June 22, 2015)\SE\SE\MainDatabase.mdf; 
         Integrated Security=True;User Instance=True"); 

, но проблема в том, мне нужно предоставить полный путь. В отличие от asp.net, все, что нужно сделать, это добавить |DataDirectory| к нему и включают имя базы данных ..

Затем я попытался использовать |DataDirectory| в этой строке соединения и я получаю сообщение об ошибке:

invalid value for key 'attachDbFilename'

я опубликовал мое заявление, и я не могу найти базу данных, потому что я установил его в другом компьютере .. поэтому attachDbFilename не правда ..

Если DataDirectory не работает, есть ли другой код, который я могу использовать аналогично каталогу данных?

+0

Обе машины подключены? – Sunny

+0

yes sir .. thats – kaizoshi

+0

Почему вы не используете IP? – Sunny

ответ

0

SqlConnection требует, чтобы вы указали полное имя db, которое прилагается.
Ни в коем случае.

1

AttachDbFilename используется с локальной базой данных. Если у вас есть удаленная база данных, то строка подключения будет be different. Взгляните на статью - How to configure SQL Server 2005, чтобы разрешить удаленные подключения.

Access mdf file

Как вы видите здесь

System.Data.SqlClient resolves the substitution strings into full paths against the local computer file system. Therefore, remote server, HTTP, and UNC path names are not supported. An exception is thrown when the connection is opened if the server is not located on the local computer.

Если вы хотите подключиться к уже запущенному экземпляру SQL Server Express на другом компьютере через TCP, то вам необходимо соединение TCP на настройки этот сервер в первую очередь. Обратите внимание: вы не можете использовать AttachDbFilename либо потому, что этот параметр применяется только к «экземплярам пользователя» SQL Server Express.

Надеюсь, это вам поможет.