В этой статье я хочу показать,как создавать подключение к базам данных SQL Server или MSDE. Этот код должен работать на обоих SQL-серверах. Я использую как 2000, так и MSDE. Кроме того, я использую Visual Studio 2002, но все это должно работать и с Visual Studio 2003, Web Matrix, и SDK из командной строки. Приведенный код должен работать как с приложениями C#, так и с веб-приложениями C# и веб-сервисами. Этот код не компилируется на FreeBSD с помощью Rotor [^].
Предыстория
Часть моего текущего проекта требует от меня сохранять и восстанавливать информацию из базы данных. Я решил использовать C# как свой основной язык с тех пор, как начал читать книгу Inside C# Second Edition [^] от Tom Archer[^], которая, таким образом, является обязательной. Однако я не смог найти примеры того, как красиво и в общем виде использовать SQL-сервер с C#.
Использование кода
Я не включал пример приложения, потому что код, который приводится в статье, может быть использован в реальности и должен работать без проблем. Также во всей статье я буду ссылаться на SQL Server, MSDE — это свободная версия SQL Server, которая не предоставляет некоторых графических инструментов и имеет несколько других ограничений, например, размер базы данных. Этот код должен работать на обоих без проблем.
Устанавливаем любимое соединение
В действительности нет никакой магии вуду для создания соединения с SQL-сервером, допуская, что он был правильно установлен,- это я не буду рассматривать в данной статье. .NET позволяет очень легко работать с SQL. Первым шагом является добавление пространства имен клиента SQL:
using System.Data.SqlClient;
Затем мы создаем SqlConnection и указываем строку подключения.
SqlConnection myConnection = new SqlConnection("user id=username;" + "password=password;server=serverurl;" + "Trusted_Connection=yes;" + "database=database; " + "connection timeout=30");
Примечание: разрыв в строке соединения служит только для форматирования
SqlConnection.ConnectionString
Строка подключения — это просто набор опций и их значений, которые указывают как и куда подключаться. Пока я изучал справочные файлы Visual Studio .NET, я обнаружил несколько полей, имеющих много имен, но работающих одинаково, как, например, Password и Pwd взаимозаменяемы. Я не включал всех опций для SqlConnection.ConnectionString в этот раз. Как только я получу шанс проверить и использовать остальные опции, я включу их в статью.
User ID
User ID используется для аутентификации средствами SQL. В своей практике я обычно игнорирую этот параметр, используя Trusted_Connection или аутентификацию средствами Windows. Если с именем пользователя связан пароль, используется Password или Pwd.
"user id=userid;"
Password или Pwd
Поле пароля используется с User ID. Не имеет смысла вход в систему без имени пользователя, а только с паролем. Password и Pwd полностью взаимозаменяемы.
"Password=validpassword;"
-или-
"Pwd=validpassword;"
Data Source, или Server, или Address, или Addr, или Network Address
Просматривая документацию MSDN, я нашел множество путей указать сетевой адрес. В документации утверждается, что нет отличий между ними, и они могут использоваться равнозначно. Адрес — это правильный сетевой адрес, для краткости я использую только адрес localhost в примерах.
"Data Source=localhost;""
-или-
"Server=localhost;"
-или-
"Address=localhost;"
-или-
"Addr=localhost;"
-или-
"Network Address=localhost;"
Integrated Sercurity или Trusted_Connection
Integrated Security и Trusted_Connection используются для указания, является ли соединение безопасным, например, как аутентификация средствами Windows или SSPI. Распознаваемые значение — это true, false и sspi. В соответствии с документацией MSDN, sspi является эквивалентом true. Примечание: Я не знаю, как работает SSPI, или как влияет на соединение.
Connect Timeout или Connection Timeout
Эти опции определяют время ожидания ответа сервера до генерации ошибки в секундах. Значением по умолчанию является 15 (секунд).
"Connect Timeout=10;"
-или-
"Connection Timeout=10;"
SqlConnection.Open()
Это последняя часть установки соединения, и в простом случае выполняется следующим кодом (не забудьте убедиться, что ваше соединение получило строку подключения ранее):
try
{
myConnection.Open();
}
catch(Exception e)
{
Console.WriteLine(e.ToString());
}
SqlConnection.Open() — это void-функция, которая не возвращает ошибок, а выбрасывает исключение, потому не забывайте помещать ее в try/catch блок, чтобы предотвратить взрыв программы на фронте пользователя.
Не забывайте закрыть, когда вы закончили!
Закрытие соединения так же просто, как и открытие. Просто вызовите SqlConnection.Close(), но не забывайте поместить его в блок try/catch, потому что, как и SqlConnection.Open(), он не возвращает ошибок, а выбрасывает исключение.
try
{
myConnection.Close();
}
catch(Exception e)
{
Console.WriteLine(e.ToString());
}
Теперь вы владеете основами, необходимыми для начала использования базы данных SQL в ваших веб или настольных приложениях.
Взято с www.realcoding.net
0.00 (0%) 0 votes








