Невозможно подключиться к базе данных с использованием кода tableadapters.fill и sql в VB.NET - PullRequest
1 голос
/ 28 марта 2011

Запуск с моего ноутбука: Visual Basic 2010 Express & SQL Server 2008

Я успешно смог использовать мастер подключения для подключения к моей базе данных на vb.net и чтения / записи данных с использованием наборов данных / таблиц_адаптеров / binding_source и т.д.

Теперь я пытаюсь создать соединение SQL с помощью кода, чтобы подключиться к моей базе данных для выполнения более сложных запросов. Мне удалось подключиться к моей базе данных с помощью SQL, но при этом он выдает ошибку, когда пытается запустить любой метод .Fill () из моих таблиц адаптера ниже.

Произошла следующая ошибка: «SqlException не обработан. Невозможно открыть базу данных пользователя по умолчанию. Ошибка входа. Ошибка входа пользователя« Chris-PC \ Chris »».

Если я удалю код подключения SQL, методы TableAdapter.Fill () будут работать нормально.

Как сделать так, чтобы оба одновременно обращались к базе данных? Какие-либо предложения?

Вот код: `

  Dim connetionString As String
    Dim cnn As SqlConnection
    connetionString = "Data Source=CHRIS-PC\SQLEXPRESS;Initial Catalog=database_db;Integrated Security=SSPI;Trusted_Connection=True;"
    cnn = New SqlConnection(connetionString)
    Try
        cnn.Open()
        MsgBox("Connection Open ! ")
        cnn.Close()
    Catch ex As Exception
        MsgBox("Can not open connection ! ")
    End Try


    Me.JobsTableAdapter.Fill(Me.database_dbDataSet.jobs)
    Me.ApplicationsTableAdapter.Fill(Me.database_dbDataSet.applications)
    Me.ApplicantsTableAdapter.Fill(Me.database_dbDataSet.applicants)

`

Ответы [ 2 ]

2 голосов
/ 29 марта 2011

Итак, после долгих часов поиска и тестирования, я наконец смог исправить свою проблему.

Проблема была в строке подключения, которая создается мастером конфигурации для моих наборов данных.Основная проблема заключалась в том, что у него было «User Instance = True»

Когда «User Instance = True», вы исключаете возможность любых других подключений иметь возможность подключения к серверу.Поэтому я открыл свой app.config и изменил строку подключения на ту, которую я использовал для подключения SQL в моем коде.После этого все заработало нормально.

0 голосов
/ 28 марта 2011

Обычно, когда я вижу ошибку Cannot open user default database, это потому, что пользователю не был предоставлен доступ к базе данных по умолчанию.Быстрый способ обойти это - установить значение по умолчанию на то, к чему у вас есть доступ. Ответы на этот вопрос показывают, как настроить базу данных по умолчанию с помощью TSQL.

Принятый ответ от Стивена Райтона имеет этот код.

sp_defaultdb [@loginame =] 'login' , [@defdb =] 'database'

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...