Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Class SqlConnection 
:(
    Опции темы
ReFleX
Дата 20.2.2007, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 499
Регистрация: 26.9.2004
Где: Таллинн

Репутация: нет
Всего: 3



Всем привет smile 

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

Просто, другими словами, не хочется вводить этот многочисленный код:
Код

SqlConnection sqlCon = new SqlConnection(ConfigurationManager.ConnectionStrings["DB"].ConnectionString);
SqlDataAdapter sqlAda = new SqlDataAdapter("SELECT [Product_ID] FROM [tblCategory] WHERE ([Explore_ID] = @Explore_ID) ORDER BY [Position]", sqlCon);
sqlAda.SelectCommand.Parameters.Add(new SqlParameter("@Explore_ID", Convert.ToInt32(Request.QueryString["CategoryID"])));

DataSet DataTbl = new DataSet();
sqlAda.Fill(DataTbl);

for (int i = 0; i < DataTbl.Rows.Count; i++)
{
...
}

PM WWW   Вверх
SeekerMan
Дата 20.2.2007, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 17.10.2006

Репутация: нет
Всего: нет



Да вот так например.
Код

public class DatabaseConnection : IDisposable
    {
        private const string connectionStringConst = "ConnectionString";

        private IDbConnection dbConnection;

        public DatabaseConnection()
        {
            OpenConnection();
        }

        public void OpenConnection()
        {
            if (dbConnection == null)
                dbConnection = CreateConnection();

            CheckConnectionState(false);
            dbConnection.Open();
        }

        private static IDbConnection CreateConnection()
        {
            string connectionString = System.Configuration
                .ConfigurationSettings.AppSettings[connectionStringConst];
            
            return new System.Data.SqlClient.SqlConnection(connectionString);
        }

        public void CloseConnection()
        {
            if (dbConnection != null)
            {
                CheckConnectionState(true);

                dbConnection.Close();
            }
        }

        public void Dispose()
        {
            if (dbConnection != null)
            {
                dbConnection.Dispose();
            }
        }

        public IDbConnection Connection
        {
            get { return dbConnection; }
        }

private void CheckConnectionState(bool isOpen)
        {
            if (isOpen)
            {
                if ((dbConnection.State & ConnectionState.Open) != ConnectionState.Open)
                    throw new InvalidOperationException("Connection is not open.");
            }
            else
            {
                if ((dbConnection.State & ConnectionState.Open) == ConnectionState.Open)
                    throw new InvalidOperationException("Connection is already open.");
            }
        }                         
}

PM MAIL   Вверх
Mymik
Дата 21.2.2007, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

Репутация: 50
Всего: 78



Как правило делается класс в сборке DAL или в любой другой сборке, которая отвечает за работу с СУБД, этот класс берет значение из web.config и возвращает SqlConnection.
Следовательно в других классах просто вызывается этот метод, т.е.
Код

SqlCommand command = new SqlCommand("dbo.GetUsers", DAL.Connection.GetConnection());

вот и все...


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0666 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.