Подключиться к базе данных - PullRequest
0 голосов
/ 01 декабря 2011

Сегодня утром у меня большая проблема.В моем SQL Server вчера была ОГРОМНАЯ ошибка, и мне пришлось ее переустановить.

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

Ссылка на объект не установлена ​​для экземпляра объекта.

Описание: во время выполнения текущего веб-запроса произошло необработанное исключение.Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: System.NullReferenceException: ссылка на объект не установлена ​​для экземпляра объекта.

Ошибка источника:

    public User GetUser(string username, string password)
    {
        // Get the User

        dynamic queryStringLogon = ("SELECT Login, Id, Password, BugLogin, Guid FROM Users WHERE (Login LIKE '" + username + "') ");

        SqlCommand theCommand = new SqlCommand(queryStringLogon);

        SqlDataReader reader = GetData(theCommand);

Line 31:             User user = null; 
Line 32:  
Line 33:             if (reader.HasRows) 
Line 34:             { 
Line 35:                user = new User();

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

<connectionStrings>
   <remove name="LocalSqlServer" />
   <add name="LocalSqlServer" 
        connectionString="data source=.\SQLEXPRESS;Initial Catalog=DataUi;Integrated Security=SSPI;User Id=clientportaluser;Password=aspen1aspen1;User Instance=true" 
        providerName="System.Data.SqlClient" />
</connectionStrings>

Я также установил clientportaluser с доступом к данным и записи данных.

 private SqlDataReader GetData(SqlCommand command)
    {
        command.Connection = Connection;

        //using (Connection)
        //{

        try
        {

            if (Connection.State == System.Data.ConnectionState.Closed)
            {
                Connection.Open();
            }

            SqlDataReader reader = command.ExecuteReader();
            return reader;
        }
        catch (Exception e)
        {
            return null;
        }
        finally
        {
            // Connection.Close();
        }

        //}
    }

    private SqlConnection Connection
    {
        get
        {
            if (_sqlConnection == null)
            {
                _sqlConnection = new SqlConnection(_conString);
            }
            return _sqlConnection;
        }
    }

    private string _conString;

    private SqlConnection _sqlConnection;

ИСПРАВЛЕНО: ошибка была для экземпляра пользователя установлена ​​в false,

Ответы [ 3 ]

2 голосов
/ 01 декабря 2011

Почему у вас оба "Интегрированная безопасность = SSPI;"и "Идентификатор пользователя = clientportaluser; Пароль = aspen1aspen1;"вместе используйте один, а затем попробуйте.

1 голос
/ 01 декабря 2011

Если вы запустите SQL Profiler, отправляется ли что-нибудь в базу данных? Можете ли вы получить доступ к базе данных через Management Studio?

1 голос
/ 01 декабря 2011

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

Посмотрите на ветку Security, если вы используете Sql Server Management Studio.

...