2013-10-09 6 views
0

Привет Я создал приложение winforms C#, я добавил соединение с моей базой данных, которую создал в Sql Server 2008 Express в Management Studio. Я опубликовал проект, и все, кажется, отлично работает на моем компьютере, но когда я запустил установку на другом компьютере, программа перестала работать и показала эту ошибку сообщения. Я хочу, чтобы приложение запускалось на любом компьютере.Не удается открыть базу данных, запрошенную логином на других компьютерах, за исключением шахт

Сигнатура проблемы: Имя события проблемы: CLR20r3 Проблема Подпись 01: geography.exe Сигнатура проблемы 02: 1.0.0.0 Проблема Подпись 03: 525520ed Проблема Подпись 04: System.Data Проблема Signature 05: 4,0. 30319,17929 Проблема Подпись 06: 4ffa5c76 Проблема Подпись 07: 2592 Проблема Signature 08: 27 Проблема Signature 09: System.Data.SqlClient.Sql Версия ОС: 6.1.7600.2.0.0.256.1 Locale ID: 1032 Дополнительная информация 1: 0a9e Добавить itional информация 2: 0a9e372d3b4ad19135b953a78882e789 Дополнительная информация 3: 0a9e Дополнительная информация 4: 0a9e372d3b4ad19135b953a78882e789

Моя строка соединения Data Source=.\sqlexpress;Initial Catalog=geografia;Integrated Security=True

Я изменил его Data Source = (местного) \ SQLExpress; Initial Catalog = географии и; Integrated Security = True, но все тот же результат.

Тогда я попытался поймать ошибку с попыткой поймать блок в первом соединении с базой данных, и когда я запускал программу он показал мне cannot open database "geografia" requested by the login. The login failed. Login failed for user 'pcname-PC\username'.

Когда я печатал приложение I включены geography.pdb как файл данных (география - это название моего проекта, и я не знаю, является ли это для встраивания базы данных)

Я новичок в программировании, и я не знаю, приложил ли я свою базу данных в приложении.

Я прочитал кое-что, но я немного смущен. Есть идея?

+0

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

+1

Попробуйте «имя хоста» вместо «localhost», 'hostname \ sqlexpress' – Ofiris

+0

Я хочу, чтобы он запускался на любом компьютере, так что будет подходящим именем хоста? – user224447

ответ

0

изменить соединение строки с именем собственного

Data Source=<serrvername>\sqlexpress;Initial Catalog=geografia;Integrated Security=True 

сервера Если вы используете (локальный) или DOT (.) Это означает, что он должен подключиться к компьютеру, в котором запущенно приложении. В этом случае, если у вас нет сервера sql или базы данных, установленной на другом компьютере, это приведет к ошибке.

+0

Я хочу, чтобы он запускался на любом компьютере, так что будет подходящим именем сервера? – user224447

+0

Если вы хотите иметь общий сервер sql для всех установок, вы должны указать имя сервера sql-сервера. если вы хотите иметь отдельный сервер sql для каждой установки, вы можете продолжить работу с dor –

+0

спасибо за ваши ответы, но я еще не понял, думаю, я не буду знать, какой сервер sql установлен на компьютере, приложение поэтому я поставил предпосылки, возможно, sql server 2008. Можете ли вы дать мне больше информации о dor? – user224447

0

Поскольку ваше приложение отлично работает на вашем компьютере при наличии точки (.), Вы можете использовать имя сервера как имя вашего компьютера.

Также вместо использования встроенной безопасности попробуйте использовать имя пользователя и пароль Sql Server.

-1

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

  • Если база данных с приложением аутентификации оконного эту волю от вашей машины только, если вы не в домене
  • Если прилагается база данных с сервером SQL аутентификация будет осуществляться с любого компьютера.

Замечания: прикрепите к базе данных SQL-сервер, а не базу данных SQL-сервера. Если вы выберете файл базы данных, вы не можете подключиться к машине с вашей базой данных SQL-сервер

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