Извлечение записи из хранимой процедуры в asp.net - PullRequest
3 голосов
/ 11 мая 2011

Я очень новичок в ASP.NET, поэтому я прошу прощения за наивный вопрос, но мне было просто интересно, как мне получить данные из хранимой процедуры, которую я вызываю из ASP.NET. Хранимая процедура должна вернутьодна строка, и я хочу получить возвращенные поля записи.

Так вот, что я до сих пор придумал

Хранимая процедура

ALTER PROCEDURE dbo.StoredProcedure6

@LoginName varchar(50)

AS
 SELECT username ,Password  FROM dbo.Users
 Where username = @LoginName
RETURN

Код для доступа к определенной записи в файле asp.net.cs

var user = dbcontext.returnuserdetails(txtEmailAddress.Text); 

, где returnuserdetails - это функция, которую я добавил через браузер модели в Visual studio 2010

Теперь вопрос в том, как мне получить и сохранить возвращаемые значения имени пользователя и пароля?

Я работаю в ASP.NET 4.0, если это помогает.

Спасибо

Ответы [ 2 ]

2 голосов
/ 11 мая 2011

Если вы в 4.0, вы можете легко использовать LINQ to SQL, здесь нет необходимости в хранимых процедурах.

private void GetUser(string emailAddress){

  using(DataContext dbcontext = new DataContext()){
    var AppData.user = dbcontext.users
             .Select(u => u.email_address == emailAddress).SingleOrDefault();

    // access entity properties as needed
    // user.email_address, user.first_name, etc..

  }    

}

Это говорит о том, что вы на самом деле не указываете, что именно вы пытаетесь сделать с пользовательской сущностью, и пароли должны НИКОГДА не сохраняться в виде простого текста.

если вы вынуждены использовать хранимые процедуры, то возвращение в LINQ-to-SQL всегда будет набором.

ALTER PROCEDURE dbo.ReturnUserDetails

@LoginName varchar(50)

AS
 SELECT * -- Get whole row so you have all info that is possibly needed  
 FROM dbo.Users
 Where username = @LoginName
RETURN

C # код

private void GetUser(string userName){

      using(DataContext dbcontext = new DataContext()){
        var user = dbcontext.ReturnUserDetails(userName).SingleOrDefault();

        // access entity properties as needed
        string userName =  user.username;
        var password = user.Password;

      }    
}
1 голос
/ 11 мая 2011

Использование SqlDataReader Class

Редактировать: это пример кода из ссылки, теперь разница между этим примером и вашим случаем заключается в том, что вы должны указать тип команды как StoredProcedure.1005 * Если это не помогло, дайте мне знать.

private static void ReadOrderData(string connectionString)
{
    string queryString =
        "SELECT OrderID, CustomerID FROM dbo.Orders;";

    using (SqlConnection connection =
               new SqlConnection(connectionString))
    {
        SqlCommand command =
            new SqlCommand(queryString, connection);
        connection.Open();

        SqlDataReader reader = command.ExecuteReader();

        // Call Read before accessing data.
        while (reader.Read())
        {
            Console.WriteLine(String.Format("{0}, {1}",
                reader[0], reader[1]));
        }

        // Call Close when done reading.
        reader.Close();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...