INSERT INTO <таблица базы данных, к которой добавляются строки>
(<столбцы, в которые будут добавляться значения>)
INSERT INTO PLANET
(PlanetName, DistanceFromSun, Inhabitants)
VALUES
('Fluff', 23500000, 'Fluffies')
Оператор INSERT добавляет в таблицу PLANET новую строку. Он не возвращает какого-либо результата в программу, но ради наглядности мы покажем, какой вид примет таблица после его выполнения.
PLANET | ||
PlanetName | DistanceFromSun | Inhabitants |
57909 | Mercurians | |
Venus | 108200 | Venusians |
Earth | 149600 | Earthlings |
Mars | 227940 | Martians |
Jupiter | 778400 | Jupiterians |
Znock | 7208100 | Znockers |
Saturn | 1423600 | Saturnians |
Uranus | 2867000 | Uranians |
Neptune | 4488400 | Neptunians |
Pluto | 5909600 | Plutonians |
Fluff | 23500000 | Fluffies |
Как правило, оператор UPDATE записывается следующим образом:
UPDATE < таблица базы данных, в которую вносятся изменения>
SET <столбцы, в которые необходимо внести изменения> = <новые значения>
UPDATE PLANET
SET PlanetName='Stuff', Inhabitants='Stuffies'
WHERE PlanetName='Fluff'
Оператор изменяет некоторые значения в строке, в которой столбец PlanetName имеет значение «Fluff» и тоже не возвращает какой-либо результат в программу. Далее показано, какой вид примет таблица после его выполнения.
PLANET | ||
PlanetName | DistanceFromSun | Inhabitants |
Mercury | 57909 | Mercurians |
Venus | 108200 | Venusians |
Earth | 149600 | Earthlings |
Mars | 227940 | Martians |
Jupiter | 778400 | Jupiterians |
Znock | 7208100 | Znockers |
Saturn | 1423600 | Saturnians |
Uranus | 2867000 | Uranians |
Neptune | 4488400 | Neptunians |
Pluto | 5909600 | Plutonians |
Stuff | 23500000 | Stuffies |
Связи и объединение
Если вы обратите внимание, то заметите, что между таблицами PLANET и POPULATION существует связь. В обеих таблицах есть столбец с именем «PlanetName». Мы говорим, что эти таблицы связаны по столбцу «PlanetName». Благодаря этой связи можно собрать всю информацию об определенной планете.
Например, можно выбрать из обеих таблиц все строки, касающиеся Венеры...
|
|
и объединить их в одну большую таблицу...
SELECT *
FROM PLANET INNER JOIN POPULATION ON PLANET. PlanetName=POPULATION. planetName
WHERE PlanetName='Venus'
|
Используемая СУБД
Существуют причины, по которым в некоторых ситуациях для работы с определенной СУБД требуются особые программные решения. Так, в среде. NET существуют разные способы работы с данными. Например, если используется база данных Microsoft SQL Server, можно использовать специальные объекты, позволяющие значительно ускорить выполнение SQL-запросов. Однако для обращения к базе данных Microsoft Access эти объекты использовать нельзя.
Поэтому код программ будет немного различаться в зависимости от того, используете ли вы SQL Server. Поэтому мы поступили следующим образом.
- Три примера программ, работающих с базами данных, в этом разделе (12a, 13a и 14a) предполагают использование SQL Server Express (или иной версии SQL Server). В противном случае вы можете найти на диске примеры соответствующих программ, рассчитанных на работу с Microsoft Access (12b, 13b и 14b). Для их запуска вообще не требуется установка какой-либо СУБД.
Тем не менее, мы бы рекомендовали вам рано или поздно установить SQL Server Express, обеспечивающий более широкие возможности программирования. Кроме того, умение работать с SQL Server гораздо выше ценится в деловой сфере, и чем скорее вы освоите SQL Server, тем лучше. Загрузить его можно бесплатно по адресу: http://www. /express/ru/sql/download/default. aspx.
Если у вас установлен и готов к работе Microsoft SQL Server Express, используйте примеры 12a, 13a и 14a. В противном случае, если у вас возникают проблемы с запуском этих программ, можно воспользоваться примерами 12b, 13b и 14b, аналогичными по сути, но не требующими установки СУБД. |
Обращение к базе данных из программы на языке C#
В следующих образцах программ на C# будут применены классы SqlConnection и SqlCommand, обеспечивающие взаимодействие с базой данных SQL Server Express под названием «Planets». Эти классы предназначены специально для работы с базами данных Microsoft SQL Server любой версии. Далее мы будем работать с данными двумя различными способами:
С использованием класса SqlDataReader, который обеспечивает разнообразные возможности программного управления базой данных, позволяя построчно перебирать данные и выполнять различные действия над выбранными значениями. С использованием классов SqlDataAdapter и DataSet (набор данных) для организации автоматического отображения строк данных с помощью таких элементов управления, как DataGrid. При таком подходе для извлечения информации из базы данных потребуется приличный объем кода, но ее вывод можно реализовать без особых усилий, поскольку такие «умные» элементы управления, как DataGridView легко привязываются к набору данных.Пример программы 12
Следующая программа подключается к базе данных SQL Server Express и посылает ей SQL-запрос. После получения результата запроса производится перебор строк и вывод каждого значения из столбца PlanetName в элемент управления Label с новой строки.
Код программы 12a (для работы с SQL Express; для работы с Microsoft Access требуется версия 12b, имеющаяся на диске) |
using System. Windows. Forms; using System. Data; using System. Data. SqlClient; // Пространство имен для работы с базами данных SQL Server class SimpleDataAccess : Form { public SimpleDataAccess() { // Указываем заголовок окна this. Text = "A simple databasing program"; // Указываем физический путь к базе данных PLANETS string dbLocation = System. IO. Path. GetFullPath("../../../database/SqlServer/planets. mdf"); // Добавляем метку и растягиваем ее на всю поверхность формы Label label1 = new Label(); label1.Dock = DockStyle. Fill; this. Controls. Add(label1); // Подключаемся к базе данных SQL Server SqlConnection connection1 = new SqlConnection ( @"data source=.\SQLEXPRESS;" + "User Instance=true;Integrated Security=SSPI;AttachDBFilename=" + @dbLocation ); connection1.Open(); // Формируем запрос к базе данных - запрашиваем информацию о планетах string sql = "SELECT * FROM PLANET"; SqlCommand command1 = new SqlCommand(sql, connection1); SqlDataReader dataReader1 = command1.ExecuteReader(); // Организуем циклический перебор полученных записей и выводим название каждой планеты на метку while (dataReader1.Read()) { label1.Text = label1.Text + dataReader1["PlanetName"] + "\n"; } // Очистка dataReader1.Close(); connection1.Close(); } static void Main() { // Запускаем новый экземпляр приложения Windows Forms при помощи вышеописанного класса Application. Run(new SimpleDataAccess()); } } |

|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 |


