powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как правильно работать с базой данных на ASP.NET MVC 4
10 сообщений из 10, страница 1 из 1
Как правильно работать с базой данных на ASP.NET MVC 4
    #38217200
Sergey N. Korobeynikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переопределяю MembershipProvider.
Необходимо переопределить N методов. Суть сводится к тому, что на СУБД нужно вызвать хранимую процедуру и передать ей параметры.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
namespace Project.Models
{
    // ...
    public class MyMembershipProvider : MembershipProvider
    {
        public override bool ChangePassword(string username, string oldPassword, string newPassword)
        {
            throw new NotImplementedException();
        }

        public override bool ChangePasswordQuestionAndAnswer(string username, string password, string newPasswordQuestion, string newPasswordAnswer)
        {
            throw new NotImplementedException();
        }

        public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
        {
            throw new NotImplementedException();
        }

        public override bool DeleteUser(string username, bool deleteAllRelatedData)
        {
            throw new NotImplementedException();
        }
    // ...
}



Подскажите, как работать с пулом подключений. Как правильно написать код, реализующий подключение к базе данных?
Т.е. не так, как во всех книжках пишут:
Код: c#
1.
2.
            string myConnectionString = ConfigurationManager.ConnectionStrings["Default"].ConnectionString;
            NpgsqlConnection myNpgsqlConnection = new NpgsqlConnection(myConnectionString);



А по-другому, чтобы эти строчки вынести из кода, и чтобы было что-то вроде метода, выделяющего соединение из пула.

P.S. Есть пример полного кода реализации MySQLMembershipProvider или аналогичных на msdn? Буду рад, если кто-то поделится ссылкой.
...
Рейтинг: 0 / 0
Как правильно работать с базой данных на ASP.NET MVC 4
    #38217222
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey N. Korobeynikov,

А что не так в этом книжном примере?
P.S. Соединение из пула автоматически выбирается, если есть свободное (И, как я понимаю, если провайдер его поддерживает). Зачем вам явная работа с ним?
...
Рейтинг: 0 / 0
Как правильно работать с базой данных на ASP.NET MVC 4
    #38217233
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И кстати, а зачем писать свой велосипед, если провайдер для MySQL есть в составе MySQL Connector/NET ?
http://dev.mysql.com/doc/refman/5.6/en/connector-net-programming-asp-provider.html
...
Рейтинг: 0 / 0
Как правильно работать с базой данных на ASP.NET MVC 4
    #38217269
Sergey N. Korobeynikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,

по сути дела, мне нужен провайдер под PostgreSQL, в котором помимо таких полей, как "Имя пользователя" и "E-mail" необходимо реализовать такие бизнес-данные , как "Номер лицевого счёта" и "Номер мобильного телефона". В Profiles такие вещи сохранять не рекомендуется. Также, эти данные в связке будут использоваться для восстановления пароля.
...
Рейтинг: 0 / 0
Как правильно работать с базой данных на ASP.NET MVC 4
    #38217290
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey N. Korobeynikov,

а Question & Answer не вариант использовать тогда?

Для PostgreSQL:
http://dev.nauck-it.de/projects/aspsqlprovider
http://dev.nauck-it.de/projects/aspsqlprovider/repository/revisions/master/show/src/NauckIT.PostgreSQLProvider
...
Рейтинг: 0 / 0
Как правильно работать с базой данных на ASP.NET MVC 4
    #38217319
Sergey N. Korobeynikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если немного вернуться к вопросу, я правильно понимаю что код ниже вполне рабочий:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
        public override bool ChangePassword(string username, string oldPassword, string newPassword)
        {
            
            string myConnectionString = ConfigurationManager.ConnectionStrings["Default"].ConnectionString;
            int count = 0;
            NpgsqlConnection myNpgsqlConnection = new NpgsqlConnection(myConnectionString);
            NpgsqlCommand myNpgsqlCmd = new NpgsqlCommand("aspnet_Membership_CreateUser", myNpgsqlConnection);
            myNpgsqlCmd.CommandType = CommandType.StoredProcedure;
            myNpgsqlCmd.Parameters.AddWithValue("@UserName", username);
            myNpgsqlCmd.Parameters.AddWithValue("@OldPassword", oldPassword);
            myNpgsqlCmd.Parameters.AddWithValue("@NewPassword", newPassword);
            count = myNpgsqlCmd.ExecuteNonQuery();
            myNpgsqlConnection.Close();
            return count == 1;
            //throw new NotImplementedException();
        }



Хотелось бы ничего не использовать левого, а реализовать своё.
...
Рейтинг: 0 / 0
Как правильно работать с базой данных на ASP.NET MVC 4
    #38217328
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey N. Korobeynikov,

Свой велосипед лучше написанного кем-то, к тому же используемого? Чем?

P.S. Наверное рабочий. Я бы использовал using(...) вместо явного вызова Close.
...
Рейтинг: 0 / 0
Как правильно работать с базой данных на ASP.NET MVC 4
    #38217348
Sergey N. Korobeynikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начнём хотя бы с того, что половина страниц на указанном вами сайте не открываются.
Плюс я уже говорил - необходимо реализовать дополнительную логику, хранить критические данные.
Хочется понять на сколько просто это сделать.
...
Рейтинг: 0 / 0
Как правильно работать с базой данных на ASP.NET MVC 4
    #38217402
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey N. Korobeynikov,

Какие именно не открываются? у меня работают все, что я вижу.

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

P.S. А в обычном профиле можно хранить Id записи, в которой содержатся ЛС и номер телефона пользователя, не находите?
...
Рейтинг: 0 / 0
Как правильно работать с базой данных на ASP.NET MVC 4
    #38217426
Sergey N. Korobeynikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не открылись Документы:
http://dev.nauck-it.de/projects/aspsqlprovider/documents

C Id записью, конечно вариант, подумать надо…
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как правильно работать с базой данных на ASP.NET MVC 4
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]