INSERT INTO <таблица базы данных, к которой добавляются строки>

(<столбцы, в которые будут добавляться значения>)

  INSERT INTO PLANET

  (PlanetName, DistanceFromSun, Inhabitants)

  VALUES

  ('Fluff', 23500000, 'Fluffies')

Оператор INSERT добавляет в таблицу PLANET новую строку. Он не возвращает какого-либо результата в программу, но ради наглядности мы покажем, какой вид примет таблица после его выполнения.

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

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». Благодаря этой связи можно собрать всю информацию об определенной планете.

НЕ нашли? Не то? Что вы ищете?

Например, можно выбрать из обеих таблиц все строки, касающиеся Венеры...

PLANET

PlanetName

DistanceFromSun

Inhabitants

Venus

108200

Venusians

POPULATION

PlanetName

Year

Population

Venus

2000

25

Venus

2001

3

и объединить их в одну большую таблицу...

  SELECT *

  FROM PLANET INNER JOIN POPULATION ON PLANET. PlanetName=POPULATION. planetName

  WHERE PlanetName='Venus'


PLANETS_AND_POPULATION

PlanetName

DistanceFromSun

Inhabitants

PlanetName

Year

Population

Venus

108200

Venusians

Venus

2000

25

Venus

108200

Venusians

Venus

2001

3

Используемая СУБД

Существуют причины, по которым в некоторых ситуациях для работы с определенной СУБД требуются особые программные решения. Так, в среде. 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