Nemiro.Data.Sql SqlClient
Пространство имён: Nemiro.Data.Sql
Сборка: Nemiro.Data (в Nemiro.Data.dll) Версия: 2.11.4.126 (2.11.4.126)
Тип SqlClient предоставляет следующие члены.
Имя | Описание | |
---|---|---|
SqlClient |
Инициализирует новый экземпляр класса SqlClient со значениями по умолчанию.
| |
SqlClient(Int32) |
Инициализирует новый экземпляр класса SqlClient с указанием продолжительности кэширования результатов выполнения запросов к базе данных.
| |
SqlClient(String) |
Инициализирует новый экземпляр класса SqlClient с указанием строки соединения с базой данных.
| |
SqlClient(String, Int32) |
Инициализирует новый экземпляр класса SqlClient с указанием строки соединения с базой данных и времени кэширования результатов выполнения запросов.
| |
SqlClient(String, String) |
Инициализирует новый экземпляр класса SqlClient с указанием строки соединения с базой данных и пути хранения записей кэша в файловой системе.
| |
SqlClient(Type, Int32) |
Инициализирует новый экземпляр класса SqlClient с указанием параметров пользовательской системы кэширования результатов выполнения запросов к базе данных и продолжительности кэширования данных.
| |
SqlClient(Type, Object ) |
Инициализирует новый экземпляр класса SqlClient с указанием параметров пользовательской системы кэширования результатов выполнения запросов к базе данных.
| |
SqlClient(String, Type, Object ) |
Инициализирует новый экземпляр класса SqlClient с указанием строки соединения с базой данных и параметрами пользовательской системы кэширования результатов выполнения запросов.
| |
SqlClient(Type, Object , Int32) |
Инициализирует новый экземпляр класса SqlClient.
| |
SqlClient(String, Int32, String, Type, Object ) |
Инициализирует новый экземпляр класса SqlClient с указанием основных параметров конфигурации класса.
| |
SqlClient(String, Int32, String, Type, Object , Type) |
Инициализирует новый экземпляр класса SqlClient с указанием основных параметров конфигурации класса.
|
Имя | Описание | |
---|---|---|
Connect |
Открывает соединение с базой данных, если нет открытого соединения.
| |
CopyDataToServer |
Переносит данные из таблиц DataSet в базу данных.
Используется SqlBulkCopy.
Это самый быстрый и экономичный способ переноса больших объемов данных в базу.
| |
CopyTableToServer |
Переносит указанную таблицу в базу данных.
Используется SqlBulkCopy.
Это самый быстрый и экономичный способ переноса больших объемов данных в базу.
| |
Disconnect |
Закрывает соединение с базой данных, если оно открыто.
| |
Dispose |
Освобождает все ресурсы, занятые объектом.
Если необходимо, закрывает все открытые объектом соединения с базой данных.
| |
Equals | Определяет, равен ли заданный объект Object текущему объекту Object. (Унаследован от Object.) | |
ExecuteNonQuery |
Выполняет запрос и возвращает количество задействованных в инструкции строк данных.
Данный метод используется совместно со свойствами CommandType, CommandText и Parameters.
| |
ExecuteNonQuery(SqlCommand) |
Выполняет запрос к базе данных с указанными в экземпляре класса SqlCommand параметрами и возвращает количество задействованных в инструкции строк.
| |
ExecuteNonQuery(String) |
Выполняет указанный SQL-запрос и возвращает количество задействованных в инструкции строк.
Не рекомендуется использовать этот метод, чтобы избежать возникновение SQL Injection при неправильном построении запроса.
Лучше используйте одну из перегрузок этого метода: ExecuteNonQuery или ExecuteNonQuery(SqlCommand).
| |
ExecuteScalar |
Выполняет запрос и возвращает первый столбец первой строки из полученного набора данных.
Данный метод используется совместно со свойствами CommandType, CommandText и Parameters.
| |
ExecuteScalar(SqlCommand) |
Выполняет запрос к базе данных с указанными в экземпляре класса SqlCommand параметрами и возвращает первый столбец первой строки из полученного набора данных.
| |
ExecuteScalar(String) |
Выполняет указанный SQL-запрос и возвращает первый столбец первой строки из полученного набора данных.
Не рекомендуется использовать этот метод, чтобы избежать возникновение SQL Injection при неправильном построении запроса.
Лучше используйте одну из перегрузок этого метода: ExecuteScalar или ExecuteScalar(SqlCommand).
| |
Finalize | Позволяет объекту Object попытаться освободить ресурсы и выполнить другие операции очистки, перед тем как объект Object будет утилизирован в процессе сборки мусора. (Унаследован от Object.) | |
GetData |
Выполняет запрос и возвращает DataSet.
Данный метод используется совместно со свойствами CommandType, CommandText и Parameters.
| |
GetData(SqlCommand) |
Выполняет запрос к базе данных с указанными в экземпляре класса SqlCommand параметрами и возвращает DataSet.
| |
GetData(String) |
Выполняет указанную SQL-инструкцию и возвращает DataSet.
Не рекомендуется использовать этот метод, чтобы избежать возникновение SQL Injection при неправильном построении запроса.
Лучше используйте одну из перегрузок этого метода: GetData или GetData(SqlCommand).
| |
GetHashCode | Играет роль хэш-функции для определенного типа. (Унаследован от Object.) | |
GetRow |
Выполняет запрос и возвращает строку данных.
Данный метод используется совместно со свойствами CommandType, CommandText и Parameters.
| |
GetRow(SqlCommand) |
Выполняет запрос к базе данных с указанными в экземпляре класса SqlCommand параметрами и возвращает строку данных.
| |
GetRow(String) |
Выполняет указанный SQL-запрос и возвращает строку данных.
Не рекомендуется использовать этот метод, чтобы избежать возникновение SQL Injection при неправильном построении запроса.
Лучше используйте одну из перегрузок этого метода: GetRow или GetRow(SqlCommand).
| |
GetTable |
Выполняет запрос и возвращает DataTable.
Данный метод используется совместно со свойствами CommandType, CommandText и Parameters.
| |
GetTable(SqlCommand) |
Выполняет запрос к базе данных с указанными в экземпляре класса SqlCommand параметрами и возвращает DataTable.
| |
GetTable(String) |
Выполняет запрос и возвращает DataTable.
Не рекомендуется использовать этот метод, чтобы избежать возникновение SQL Injection при неправильном построении запроса.
Лучше используйте одну из перегрузок этого метода: GetTable или GetTable(SqlCommand).
| |
GetType | Возвращает объект Type для текущего экземпляра. (Унаследован от Object.) | |
MemberwiseClone | Создает неполную копию текущего объекта Object. (Унаследован от Object.) | |
ToString | Возвращает объект String, который представляет текущий объект Object. (Унаследован от Object.) |
Имя | Описание | |
---|---|---|
Cache |
Предоставляет доступ к параметрам кэширования.
| |
CacheAccessTimeout |
Максимальное время ожидания освобождения доступа к записи файлового кэша (File).
По истечению указанного времени, если файл записи не станет доступен, произойдет исключение.
| |
CacheBinder |
Тип сириализатора пользовательских объектов.
| |
CacheBufferAccessTimeout |
Максимальное время ожидания освобождения доступа к буферу файлового кэша (File).
По истечению указанного времени, если буфер не станет доступен,
будет предпринята попытка осуществления доступа к буферу, что, в некоторых случаях, может привести к возникновению исключения.
| |
CacheBufferSize |
Максимальный объем данных (в килобайтах) для дополнительного кэша в памяти (ОЗУ) компьютера.
Кэш памяти используется для ускорения работы файлового кэша (File).
Значение по умолчанию 2048 Кб (2 Мб).
| |
CacheCustom |
Тип пользовательского объекта кэширования. Используется совместно со свойствами CacheType и CacheCustomArgs.
| |
CacheCustomArgs |
Массив дополнительных параметров инициализации пользовательского кэша. Эти параметры будут переданы в конструктор пользовательского кэша.
Используется совместно со свойствами CacheType и CacheCustom.
| |
CacheDuration |
Продолжительность хранения записи в кэше, в секундах.
Если это свойство имеет значение 0 или меньше, кэширование данных не выполняется.
Значение по умолчанию - ноль, если иное не указано в параметре NeData:Sql:CacheDuration файла конфигурации.
| |
CacheName |
Имя ключа элемента кэша, если нужно указать определенный ключ (по умолчанию, формируется автоматически для конкретного запроса).
| |
CachePath | ||
CacheType |
Метод кэширования данных. Значение по умолчанию Auto, если иное не указано в параметре NeData:Sql:CacheType файла конфигурации.
| |
CommandText |
Текст SQL-запроса, либо имя хранимой процедуры, которую необходимо выполнить.
| |
CommandTimeout |
Время ожидания выполнения команды (в секундах). По умолчанию используется значение 30 секунд.
| |
CommandType |
Тип команды, указанной в свойстве CommandText.
Значение по умолчанию Auto, если иное не указано в параметре NeData:Sql:CommandType файла конфигурации.
| |
ConnectionMode |
Режим соединения с базой данных.
Значение по умолчанию Auto, если иное не указано в параметре NeData:Sql:ConnectionMode файла конфигурации.
| |
ConnectionString |
Строка соединения с базой данных. Либо имя строки соединения в файле конфигурации (*.config).
Значение по умолчанию: LocalSqlServer.
| |
ConnectionTimeout |
Время ожидания соединения с сервером (в секундах) до возникновения исключения.
По умолчанию ноль - будет использоваться значение в зависимости от конфигурации сервера.
| |
LastQueryResultsFromCache |
Содержит True, если при выполнении последнего запроса результат был получен из кэша.
В противном случае - False.
| |
LastQueryTime |
Время, затраченное на выполнение последнего запроса к базе данных.
| |
Parameters |
Коллекция параметров запроса.
|
По умолчанию, при инициализации класса используются параметры из файла конфигурации. Для web-проектов - web.config; для windows-приложений - app.config.
Поддерживаются следующие параметры:
- NeData:Sql:ConnectionMode
- NeData:Sql:CommandType
- NeData:Sql:CacheType
- NeData:Sql:CacheDuration (не рекомендуется использовать для установки глобального времени кэширования)
- NeData:Sql:CachePath
- NeData:Sql:CacheBinder
- NeData:Sql:CacheBufferSize
- NeData:Sql:CacheBufferAccessTimeout
- NeData:Sql:CacheAccessTimeout
- NeData:Sql:CacheCustom
- NeData:Sql:CacheCustomArgs
В приложениях Windows имена параметров нужно записывать без двоеточий, и с учетом регистра. Например:
- NeDataSqlCacheTyp
- NeDataSqlAutoTrimmingStrings
- NeDataSqlCachePath
- и т.п.
По умолчанию используется строка соединения LocalSqlServer. В качестве ConnectionString можно указывать, как саму строку соединения, так и имя параметра в файле конфигурации. В web-приложениях строка соединения с именем LocalSqlServer иметь путь к SQL Server по умолчанию. Для использования параметра LocalSqlServer в веб-приложениях со своей базой данных, которая отличается от базы по умолчанию, необходимо удалить LocalSqlServer из файла конфигурации и добавить заново (написать код удаления и добавления):
<remove name="LocalSqlServer"/> <add name="LocalSqlServer" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=example;Trusted_Connection=True;" />
При работе с классом SqlClient рекомендуется использовать оператор using .
using (SqlClient client = new SqlClient()) { // код работы с данными }
Обратите внимание |
---|
Показанные ниже примеры лишь демонстрируют использование класса SqlClient и содержат строки соединения с базой данных, а также и SQL-запросы. У вас все эти данные могут отличаться. Пожалуйста, учитывайте этот факт и не забудьте поменять строки соединения и запросы на свои, если захотите проверить работу представленных фрагментов кода. |
В следующем примере создается экземпляр класса SqlClient с использованием строки соединения по умолчанию (LocalSqlServer).
При помощи метода GetRow выполняется SQL-запрос и в переменную row передается строка данных.
using (SqlClient client = new SqlClient()) { DataRow row = client.GetRow("SELECT * FROM table WHERE id = 1000"); if(row == null) { Console.WriteLine("Запрос не дал результатов"); } else { Console.WriteLine("id = {0}", row["id"]); } }
В следующем примере создается экземпляр класса SqlClient с явным указанием строки соединения.
using (SqlClient client = new SqlClient(@"Data Source=.\SQLEXPRESS;Initial Catalog=example;Trusted_Connection=True;")) { DataRow row = client.GetRow("SELECT * FROM table WHERE id = 1000"); if(row == null) { Console.WriteLine("Запрос не дал результатов"); } else { Console.WriteLine("id = {0}", row["id"]); } }
В следующем примере создается экземпляр класса SqlClient с указанием имени параметра строки соединения в файле конфигурации.
using (SqlClient client = new SqlClient("MyConnectionString")) { DataRow row = client.GetRow("SELECT * FROM table WHERE id = 1000"); if(row == null) { Console.WriteLine("Запрос не дал результатов"); } else { Console.WriteLine("id = {0}", row["id"]); } }
В следующем примере показано применение встроенного механизма кэширования. Данные кэшируются в файловой системе, по умолчанию в одном каталоге с программой. Продолжительность кэширования указывается в свойстве CacheDuration. После выполнения запроса, в свойстве LastQueryTime можно получить информацию о продолжительности выполнения последнего запроса. При помощи свойства LastQueryResultsFromCache можно узнать, был ли использован кэш при выполнении последнего запроса или нет.
using (SqlClient client = new SqlClient()) { // кэширование результатов в файлом кэше на 30 секунд client.CacheDuration = 30; client.CacheType = CachingType.File; // формирование запроса client.CommandText = "SELECT * FROM table"; // выполнение запроса DataTable table = client.GetTable(); // вывод результатов Console.WriteLine("Получено данных: {0}", table.Rows.Count); Console.WriteLine("Время выполнения запроса: {0}", client.LastQueryTime); Console.WriteLine("Результат получен из кэша: {0}", client.LastQueryResultsFromCache); // повторное выполнение аналогичного запроса table = client.GetTable(); Console.WriteLine("Получено данных: {0}", table.Rows.Count); Console.WriteLine("Время выполнения запроса: {0}", client.LastQueryTime); Console.WriteLine("Результат получен из кэша: {0}", client.LastQueryResultsFromCache); }