Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 256

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 250 251 252 253 254 255 < 256 > 257 258 259 260 261 262 .. 404 >> Следующая


Нужно строить команду select таким образом, чтобы она возвращала только те данные, которые действительно требуется обрабатывать. Одним нз способов является ограничение числа используемых столбцов в том случае, если ваша программа в действительности работает только с некоторыми из существующих столбцов, для чего в операторе select необходимо задать только те столбцы, которые требуются на самом деле:

SELECT CustomeriD, CompanyName FROM Customers

Этого следует избежать, если требуется добавлять строки, поскольку для этого следует задать значения для всех столбцов.

Использование ключевого слова WHERE с командой SELECT

Еще один способ минимизации количества данных, загружаемых в память, — это включение в SQL-оператор select посылки where, которая позволяет ограничить число выбираемых строк. Например, следующий оператор:

SELECT * FROM Customers WHERE CustomeriD = 'ZACZI'i

приведет к загрузке в память только одной строки, в которой имеется значение zaczi, для чего будет использована малая часть памяти, которая потребовалась бы для загрузки всей таблицы целиком. В посылке where также имеется возможность задавать диапазон интересующих нас значений, поэтому оператор следующего вида:

SELECT * FROM Orders WHERE OrderiD BETWEEN 10900 ABD 10999

загрузит только строки, у которых OrderiD лежит внутри указанного диапазона.

Если существует возможность ограничить посредством использования посылки whehe число строк, загружаемых из большой таблицы, то это всегда следует делать. Ни в коем случае не следует сначала загружать в объект DataSet все строки,
550

Глаза 19

а затем осуществлять поиск с использованием цикла foreach; вместо этого для осуществления поиска такого рода следует использовать оператор select с посылкой WHERE.

Вашей задачей является определение наиболее эффективного баланса менаду локальной обработкой данных на стороне клиента, на которой выполняется программа ADO.NET, н обработкой на стороне сервера, где выполняется SQL. Объектная модель ADO.NET н C# оказываются более приспособленными, чем SQL для выполнения сложных вычислений или поиска. Наполняйте объект DataSet данными, которые вам необходимо обработать, и выполняйте логику такого рода на стороне клиента. Помните, что ограничение количества выбираемых из каждой таблицы строк с помощью соответствующих условий позволит существенно увеличить быстродействие и сократить объем используемой памяти.

Рассмотрение SQL-команд SELECT; UPDATE, INSERT и DELETE

В SQL используется четыре основные команды для получения, изменения, добавления и удаления строк, составляющих таблицу, select, update, insert и delete соответственно, В рассматривавшихся ранее примерах использовался объект commanduuilder для создания SQL-команд, которые применялись для внесения изменений в базу данных:

SqlDataAdapter thisAdapter =

new SqlDataAdapter ('SELECT CustomeriD from Customers', thisConnection)

SqlCommandBuilder thisBuilder = new SqlCommandBuilder(thisAdapter);

Этот объект генерирует SQL-команды, предназначенные для внесения изменений в данные (update, insert и delete), которые основываются на команде select.

Практикум: пример, демонстрирующий SQL

В программе, которую мы сейчас создадим, можно увидеть команды, сгенерированные С ПОМОЩЬЮ Методов GetUpdateComnumdf), GetlnsertCommand() И GctDelete-Command() объекта CojnmandBui lder:

using System;

using System.Data;

using System.Data,SqlClient;

class ShowSQLExample t

public static void KainO

<

OleDbConnection thisConnection = new OleDbConnection (

*Provider=HiCroBoft.Jet.OLEDB.4,0;Data Source=NWIND.MDB');

thisConnection.Open())

OleDbDataAdapter thieAdapter = new

OleDbDataAdapter('SELECT CustomeriD from Customers', thisConnection);

OleDbConmandBuilder thisBuilder ¦ new OleDbConunondBuilder (thisAdapter) s Console.Writellnef'SQI* SELECT Command is; \n{0} \n',

this Adapter.SelectCommand.CoininandText) ;

OleCommand updateContoand = thisBuilder.GetUpdateCommand0 j Console.WriteLine('SQL UPDATECommand ia:\n(0}\'n, updat eConmand. CommandText);
Доступ к данным посредством ADO.NET________________________________________________________551

OleDbCoanand insertCommand « thisBuilder.GetlneercComaand();

Console.WriteLine{'SQb INSERT Cosamand ia:\n{0}\n*, ineertComniand. ComnandText);

OleDbCoinaand deketeCommand • thisBuilder.GetDeleteComtiandO ;

Coneole.WriteLine('SQL DELETE Command ia:\n{0)*, ¦ -

deleteConmand.CoramandText) i

thisConnection.Closet)j "

)

>

Выходной поток этого примера будет иметь следующий вид:

SQL SELECT Command is:

SELECT CustomeriD from Customers

SQL UPDATE Command is:

UPDATE “Customers'SET ‘CustomeriD’ =? WHERE (‘CustomeriD’=?)

SQL INSERT Command is:

INSERT INTO 'Customers'fCus(omerlD') VALUES(?)

SQL DELETE Command is:

DELETE FROM ‘Customers'WHERE ('CustomerlD‘=?)

Как это работает

Обратите внимание на то, что в командах update и delete используется посылка where, сгенерированная в объекте CommandBuilder.
Предыдущая << 1 .. 250 251 252 253 254 255 < 256 > 257 258 259 260 261 262 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.