2010-07-01 3 views
7

Я использую MS Visual Studio 2010 для создания приложения с доступом к базе данных SQL Server 2008, но то, что я сделал для создания базы данных, это добавить новый «проект базы данных SQL Server 2008», он добавил его и покажет мне все на мой обозреватель решений, но как я могу написать строку подключения для подключения к ней, потому что я написал это, и это не сработало.Как определить строку подключения к базе данных SQL Server 2008?

SqlConnection cnTrupp = new SqlConnection("Initial Catalog = Database;Data Source = localhost;Persist Security Info=True;"); 

обновление:

Я использовал этот один:

cnTrupp = new SqlConnection("database=DB_Trupp;server=.\\SQLExpress;Persist Security Info=True;integrated security=SSPI"); 

Но когда я использую cnTrupp.Open() он говорит мне, что не удалось Войти.

+3

http://www.connectionstrings.com/ имеет их все. –

ответ

11

Проверьте веб-сайт connection strings, который содержит тонны примеров для ваших строк подключения.

В принципе, вам нужны три вещи:

  • имя сервера, который вы хотите подключиться (использование «.» или (local) или localhost для локальной машины)
  • имя базы данных, которую вы хотите подключиться к
  • какой-то способ определения безопасности - либо интегрированной системы безопасности Windows, или определить комбо имя пользователя/пароль

Например, если вы хотите подключиться к локальной машине и AdventureWorks базы данных с использованием комплексной безопасности, используйте:

server=(local);database=AdventureWorks;integrated security=SSPI; 

Или если у вас есть SQL Server Express на компьютере в установке по умолчанию, и вы хотите подключиться в базу данных AdventureWorksLT2008, используйте:

server=.\SQLExpress;database=AdventureWorksLT2008;integrated Security=SSPI; 
+0

'localhost' не имеет ничего общего с веб-сайтом или HTTP. Он отлично работает с SQL Server. –

+0

Можете ли вы предоставить источник для localhost vs (local) vs. Информация? Я всегда думал, что вы можете использовать localhost ... –

+0

@Abe Miessler: нет, вы совершенно правы - localhost работает так же хорошо. Извините за путаницу ..... –

0

Необходимо указать, как вы будете проходить проверку подлинности в базе данных. Если вы хотите использовать встроенную безопасность (это означает, что с помощью проверки подлинности Windows, используя вашу локальную или доменную учетную запись Windows), добавьте в строку подключения:

Integrated Security = True; 

Если вы хотите использовать проверку подлинности SQL Server (то есть указать логин и пароль, а не с использованием учетной записи Windows), добавьте это:

User ID = "username"; Password = "password"; 
3

Стандартная безопасность
Data Source = ServerName \ INSTANCENAME; Initial Catalog = MyDatabase; User Id = MyUserName; Password = MyPassword;

Trusted Connection
Data Source = имя_сервер \ имя_экземпляр; Initial Catalog = MyDatabase; Integrated Security = SSPI;

Вот хорошая ссылка на строки соединения, которые я держать под рукой: ConnectionStrings.com

+0

хорошо, но я собираюсь установить его на другой компьютер. Как я должен знать имя компьютера другого? – Osukaa

+0

Установить что? База данных или приложение? Единственное, что вас беспокоит в вашей строке подключения, - это база данных. –

+0

Я думаю, что вас может смутить имя_сервера \ instanceName ссылается на SQLServer, а не на компьютер, на котором работает код. – JohnFx

0

Copy/Paste, что находится ниже в код:

SqlConnection cnTrupp = new SqlConnection("Initial Catalog = Database;Data Source = localhost;Persist Security Info=True;Integrated Security = True;"); 

Имейте в виду, что это решение использует свой аккаунт окна, чтобы войти in

Как сказал Джон и Адам, это связано с тем, как вы входите в систему (или не входите в систему). Посмотрите на ссылку, предоставленную Джоном, чтобы получить лучшее объяснение.

+1

'localhost' - системный идентификатор локального адаптера. Он будет работать нормально; попробуйте в SSMS. –

+0

@ Адам Робинсон: ты абсолютно прав - работает как шарм. Не знаю, где я получил это .... хорошо, узнал что-то новое сегодня! :-) –

0

Вместо того, чтобы писать в коде непосредственно я предлагаю вам использовать выделенный <connectionStrings> элемент в файле .config и извлечь его оттуда.

Также используйте заявление using, чтобы после использования ваше соединение автоматически закрывалось и удалялось.

Отличная ссылка для поиска соединительных строк: connectionstrings.com/sql-server-2008.

+0

-1 Это не имеет никакого отношения к актуальному вопросу. –

+0

+1 он делает хорошую точку и предоставляет ресурс для информации о строках соединения. –

+0

@Abe: Его «точка» - это «посмотреть». Добавление этого к ответу, который касается фактической проблемы, является хорошим. Проводя это с информацией, которая, хотя и хорошо известна, не связана с вопросом. –

Смежные вопросы