2015-02-10 5 views
0

У меня есть база данных и связанные с ней веб-страницы, которые загружаются на сервер, но не имеют доступа к базе данных с сервера, но при запуске на локальном компьютере через VS2010 я смог получить к ней доступ. Заданный сервер Admin также о проблеме, но они сказали, что с сервера все в порядке, есть проблема в коде, который они говорят.Не удалось получить доступ к базе данных

Следующая ошибка я получаю:

Server Error in '/' Application. 
Invalid object name 'Login'. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Data.SqlClient.SqlException: Invalid object name 'Login'. 

Источник ошибки:

Line 20: SqlCommand com = new SqlCommand("select Password from Login where Username='" + Uname_txt.Text.Trim() + "'", con); 
Line 21: con.Open(); 
Line 22: SqlDataReader dr = com.ExecuteReader(); 
Line 23: try 
Line 24: { 
+0

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

ответ

1

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

Итак, посмотрите на строку подключения в web.config и убедитесь, что она настроена правильно (если вы используете Integrated Security, убедитесь, что соответствующему APP POOL разрешено обращаться к базе данных).

Кроме того, убедитесь, что в базе данных действительно создана таблица входа в систему.

После того, как вы сделаете все, что у вас есть много вещей, чтобы следить за:

  1. Прекратите использование зарезервированных ключевых слов в выражениях SQL (пароль, Логин и т.д.) или, по крайней мере, завернуть их в квадратные скобки, как [Пароль] ,
  2. Попробуйте войти в привычку ссылок схемы при работе с таблицами (dbo.Login, а не только Входа)
  3. Extract запросов, как, что в хранимых процедурах, так что вы not vulnerable to SQL Injection
0

Вы не отправил Строка подключения, я подозреваю, вы не предоставили ИНИЦИАЛЬНЫЙ КАТАЛОГ в строке подключения, из-за которого он напрямую связан с основной базой данных, и, конечно, ваша таблица не существует в Master.

INITIAL CATALOG = следует добавить в строку подключения. Я надеюсь, что это поможет вам.

Примечание. Вы также можете использовать DATABASE = в строке подключения.

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