Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Доступ к БД в .NET: для чайников


Visual Basic: новости сайтов, советы, примеры кодов

VBNet.Ru
Выпуск от Павла Сурменка



Добрый вечер!

Рассылка давно не выходила. Как я сегодня посмотрел в архиве, регулярно не выходила почти 2 года. Сейчас я подумал, что нельзя такой хорошей рассылке пропадать :) и решил возобновить выпуски. Не обещаю, что они будут регулярными, но раз в 1-2 неели точно будут. Возможно привлеку также соавторов, ежели такие найдутся.

Немного меняется формат. К примеру, больше в расылке не будет ни слова про VB6. Если вы еще не «пересели» с VB6 на .NET, то можете смело отписываться, либо всё же начать изучать .NET :)

Недавно я открыл свой блог. В нем публикую разные заметки, в основном не по теме программирования, а об IT, предприниательстве, интернете и т.п. Кому интересно – заходите: http://indigo.betacode.ru/  . И также приглашаю подписаться на рассылку «Информационная поддержка бизнеса: от А до Я», соавтором которой я являюсь. В ней обсуждаются вопросы применения информационных технологий в бизнесе (корпоративные сайты, электронный документооборот, CRM, ERP, WMS и т.д.).

Сегодня публикую начало «туториала для чайников» о том, как работать с БД в .NET. Да.. если у вас есть предложения о том, какие темы рассмотреть в следующих выпусках рассылки, пишите: pavel@vbnet.ru

 

Доступ к БД в .NET: для чайников

Спрашивают меня, как доступиться к БД в .NET… Отправка спрашивающего в MSDN и в Google не помогает: хотят туториал для чайников :( Ну что ж, сделаем туториал, нам не трудно :)

Итак, рассмотрим на примере работы с БД MS SQL Server: эта СУБД наиболее подходящая для систем среднего уровня сложности. Предполагаю, что SQL Server вы уже установили, и БД создали. Осталось только написать код, который будет работать с БД. Код покажу на примере VB .NET 2005 (можно и на C#, но мне VB роднее и приятней).

Первым делом нужно создать подключение. Для подключения нужно предварительно сформировать строку соединения (Connection String) – это строка, содержащая основные параметры подключения (имя сервера, имя БД, данные для авторизации), и может также включать ряд дополнительных параметров (например таймаут соединения).

Способов авторизации в SQL Server может быть два: Windows-авторизация и SQL-авторизация. В первом случае авторизацию берет на себя Windows (права на объекты назначаются соответственно Windows-логинам, имеющемся на данном компьютере или в домене). Во втором случае в SQL Server создаются свои учетные записи для юзеров, и авторизация производится по логину/паролю. Тип авторизации задается при установке SQL Server, и также для каждой БД можно выбирать тип авторизации при ее создании.  По умолчанию используется Windows-авторизация.

Соответственно есть 2 «шаблона» строк соединения. Для Windows-авторизации:

Dim ConnectionString As String = "Data Source=ComputerName;Initial Catalog=DBName;Integrated Security=True"

Для SQL-авторизации:

Dim ConnectionString As String = "Password=Pass;Persist Security Info=True;User ID=Login;Initial Catalog=DBName;Data Source=ComputerName"

Здесь:

ComputerName – имя компьютера. Если у вас SQL Server стоит не на Instance по умолчанию, то тогда нужно указывать ComputerName\Instance, где Instance – имя Instance вашего SQL Server. Если база стоит не на вашем компьюетер, а на другом компьютере в локальной сети или в интернете, то можно вместо имени компьютера указать IP.

DBName – имя базы данных

Login – логин (только для SQL-авторизации)

Pass – пароль (только для SQL-авторизации)

 

С строкой соединения кажется разобрались. Теперь нужно создать объект соединения. Для начала импортируйте пространство имен System.Data.SqlClient, указав в начале файла .vb следующую директиву:

Imports System.Data.SqlCient

Это позволит немного сократить объем кода и увеличить его читаемость.

Для создания подключения используется класс SqlConnection. В конструктор ему передается строка соединения. После создания его нужно открыть: вызвать метод Open, после завершения работы обязательно закрыть: Close. Закрывать соединения очень важно! Если вы будете забывать закрывать соединения, то вполне может возникнуть ситуация, когда в памяти повиснет много неиспользуемых, но еще открытых соединений. А пул соединений не резиновый – и SQL Server начнет отказывать в открытии новых соединений, тогда вся ваша система повиснет.

Поэтому советую использовть констуркцию Using: она гарантирует, что при выходе кода за пределы блока Using объект будет правильно утилизирован. Эта конструкция появилась в VB 2005. Для несчастливых обадателей VB низших версий придется использовать эквивалентную конструкцию Try.. Finally..End Try (помещая в блок Finally вызов метода Close либо Dispose объекта соединения).

В целом код открытия соединения будет выглядеть к примеру так:

Dim ConnectionString As String = "Password=Pass;Persist Security Info=True;User ID=Login;Initial Catalog=DBName;Data Source=ComputerName"

Using Conn As New SqlConnection(ConnectionString)

    Conn.Open()

    ‘Здесь код работы с БД

End Using

Пожалуй, для начала хватит :) Остальное расскажу в следующих выпусках.

Если есть вопросы – пишите: pavel@vbnet.ru , постараюсь ответить.

 

Павел Сурменок

VBNet

Web Reflection

 

 


В избранное