powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Ado asp
14 сообщений из 14, страница 1 из 1
Ado asp
    #38690392
SergeyADва
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть несколько классов которые должны работать с бд через ADo.
Как лучше сделать, чтоб не открывать и не закрывать в каждом объекте коннекшн
...
Рейтинг: 0 / 0
Ado asp
    #38690395
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обычно используется пул соединений, так что смело открывай/закрывай коннекшены каждый раз как используешь
...
Рейтинг: 0 / 0
Ado asp
    #38690400
SergeyADва
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Меня все-таки интересует как один коннекшн использовать.. а не открывать закрывать неск раз
...
Рейтинг: 0 / 0
Ado asp
    #38690410
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
он и будет один, используйте строку соединения из конфига
...
Рейтинг: 0 / 0
Ado asp
    #38690427
SergeyADва
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_Oneон и будет один, используйте строку соединения из конфига

привидите плиз примеры кода: есть несколько классов в них методы выбмрающие данные из бд классы должны использовать один коннекшн
...
Рейтинг: 0 / 0
Ado asp
    #38690446
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
за примерами в поиск

вот , например : Правильная реализация коннекта к БД
...
Рейтинг: 0 / 0
Ado asp
    #38690462
SergeyADва
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_Oneза примерами в поиск

вот , например : Правильная реализация коннекта к БД

вы предлагаете делать так?

public class test1
{

private SqlConnection cn;
public getSome()
{
cn.open();
...
cn.close();
}

}

public class test2
{

private SqlConnection cn;
public getSome()
{
cn.open();
...
cn.close();
}

}
...
Рейтинг: 0 / 0
Ado asp
    #38690468
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
using только используйте
...
Рейтинг: 0 / 0
Ado asp
    #38690531
VIT2708
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyADваЕсть несколько классов которые должны работать с бд через ADo.
Как лучше сделать, чтоб не открывать и не закрывать в каждом объекте коннекшн

А что будет когда лимит коннектов исчерпается

если все создадут например при лимите 200 connection.Open() и не закроют, что будет с 201?
...
Рейтинг: 0 / 0
Ado asp
    #38691228
SergeyADва
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VIT2708SergeyADваЕсть несколько классов которые должны работать с бд через ADo.
Как лучше сделать, чтоб не открывать и не закрывать в каждом объекте коннекшн

А что будет когда лимит коннектов исчерпается

если все создадут например при лимите 200 connection.Open() и не закроют, что будет с 201?

Ошибка будет.

так как в примере выше писать нельзя.
Есть такой вариант

public class test
{
private SqlConnection Cn;
public test( SqlConnection Cn)
{
this.Cn=Cn;
}
...
}

Какие еще
...
Рейтинг: 0 / 0
Ado asp
    #38691484
VIT2708
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyADваVIT2708пропущено...


А что будет когда лимит коннектов исчерпается

если все создадут например при лимите 200 connection.Open() и не закроют, что будет с 201?

Ошибка будет.

так как в примере выше писать нельзя.
Есть такой вариант

public class test
{
private SqlConnection Cn;
public test( SqlConnection Cn)
{
this.Cn=Cn;
}
...
}

Какие еще

Создайте базовый класс, пропишите там общую логику типа инициализации sql connection, проверку открыто ли соединение и т. д.

Пример

Код: 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.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
public abstract class Base : IDisposable
{
protected SqlCommand command = null;
        protected SqlDataReader reader = null;
        private string connectionString = string.Empty;

public Base(string connectionString)
        {
            this.connectionString = connectionString;
        }

protected bool Init()
        {
            if (command == null) command = new SqlCommand();
            if (command.Connection == null) command.Connection = new SqlConnection(connectionString);
            if (command.Connection.State != ConnectionState.Open)
            {
                try
                {
                    command.Connection.Open();
                }
                catch
                {
                    command.Dispose();
                    command = null;
                    return false;
                }
            }
            command.CommandType = CommandType.Text;
            return true;
        }

public void Dispose(bool disposing)
        {
            if (!disposed)
            {
                if (disposing)
                {
                    try
                    {
                        command.Connection.Close();
                        command.Connection.Dispose();
                        command.Dispose();
                    }
                    catch { }
                    finally
                    {
                        CloseReader();
                        disposed = true;
                    }
                }
            }
            disposed = true;
        }

protected void AddParameter(DbParameter parameter)
        {
// прописать логику для добавления параметров
}
//... и другие функции 
}



Что бы здесь много не писать могу в архиве сюда залить пример если нужно?
...
Рейтинг: 0 / 0
Ado asp
    #38691875
SergeyADва
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VIT2708,
но в вашем случае выходит, что открытие коннекта происходит при создании объекта.
Будет 10 объектов (классов от базового) и при создании объекта создается и открывается коннект...
...
Рейтинг: 0 / 0
Ado asp
    #38691986
VIT2708
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyADваVIT2708,
но в вашем случае выходит, что открытие коннекта происходит при создании объекта.
Будет 10 объектов (классов от базового) и при создании объекта создается и открывается коннект...

Поймите ну нельзя держать коннект открытым постоянно, это ооочень дорогостоящий ресурс.
Нужно открыть соединение прочитать данные или сохранить и потом сразу же закрыть, так как существует лимит на количество открытых коннектов
...
Рейтинг: 0 / 0
Ado asp
    #38692321
прррпп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какие еще будут мнения по теме?
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Ado asp
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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