Архив за Июнь, 2012

Установка связей между таблицами C# по вторичным ключам

Пятница, Июнь 8th, 2012 Нет комментариев

Under : , , , , ,

Вторичные ключи (Foreign Keys) позволяют устанавливать реляционные связи между двумя таблицами. Эти связи трактуются как отношение родитель/потомок (parent/child), один ко многим (one to many) или же главное/подробности (master/detail). Пусть у нас есть две таблицы Order(заказы) и Customer(заказщики). Но заказщик может не делать заказов, а может сделать их очень много. Для этого подходит к применеию внешний ключ(foreign key), который помогает управлять связями между таблицами в базе данных. Существует техника создания отношений через внешний ключ в дочернюю таблицу, Order, и ссылаетесь через этот внешний ключ на первичный ключ в родительской таблице, Customer (Customer — родитель/Order — потомок). Принудительная установка внешнего ключа дочерней таблицы, который ссылается на родительскую таблицу, позволяет обеспечить ссылочную ценность — внутреннюю непротиворечимость базы данных. (далее…)

Создание базы данных на основе SQL в C# 2010 Express

Пятница, Июнь 8th, 2012 Нет комментариев

Under : , , , ,

Большинство нашей повседневной работы состоит из операций, в ходе которых производятся те или иные манипуляции над данными, а большинство этих данных берется из баз данных (databases). Вам предоставлена полная свобода выбора любых источников, я хочу подробнее остановиться на описании Microsoft SQL Server – бесплатная версия Express. Устанавливается этот пакет совместно с установкой Microsoft Visual C# 2010 Express или же вы можете зайти на сайт MSDN и там найти его.

Для создания базы данных открываем C# 2010 Express и жмем Ctrl + Alt + S. Вызывается окно Обозреватель баз данных: (далее…)

Взаимодействие с базами данных на C#

Пятница, Июнь 8th, 2012 Нет комментариев

Under : , , , , ,

Удовлетворить потребность в хранении и считывании табличных данных удобно с помощью технологии ADO.Net. Общий принцип заключается в том, что с помощью программных инструментов мы загружаем реальную базу данных (РБД) в виртуальную (ВБД), и работаем с ней, а затем, при необходимости, загружаем изменения в РБД. Уточним, что данные в ВБД хранятся только во время исполнения программы. Рассмотрим на примере базы данных с именем myDataBase.mdb, в которой есть таблица student. Для работы на компьютере должен быть установлен драйвер ODBC. В панели управления («источники данных ODBC») необходимо настроить путь к источнику данных и дать ему имя (в нашем примере — dbsource).

Для обеспечения взаимодействия с базой данных необходимо подключить следующие библиотеки: (далее…)

Сравнение ссылочного и структурного типов в C#

Пятница, Июнь 8th, 2012 Нет комментариев

Under : , , , , ,

Переменные и ссылочного, и структурного типа иначе называются объектами. Принцип их использования один и тот же. Разница лишь в том, что именно хранится в переменных – значение или ссылка на него.

Ссылочный тип данных в си шарп имеют экземпляры классов, массивов, делегатов и интерфейсов. Для их объявления используют соответствующие ключевые слова.Такие переменные называются ссылочными потому, что они хранят не само значение, а ссылку на ячейку памяти, содержащую значение. То есть, если присвоить переменной a некоторое значение, а потом записывать выражение b=a, то содержимое переменной a не копируется. Запись b=a лишь означает, что обе переменные ссылаются на одну и ту же область памяти. У этой области появляется два названия: a и b. (далее…)

Перегрузка операций в C#

Пятница, Июнь 8th, 2012 Нет комментариев

Under : , , , ,

Для классических типов данных в си шарп существуют всем известные базовые операции: +, -, *, /. Для данных целого типа они работают так же, как в математике. Но, например, сложение может использоваться и для данных строкового (string) типа. При этом используется тот же оператор сложения, только перегруженный – иначе говоря, переопределенный под собственные цели. Так перегрузка оператора сложения для строкового типа уже предусмотрена: складывая две строковые переменные, мы получаем одну переменную, составленную из двух:
string f = «Иванов»;
string n = « Вася»;
string fn = f+n; // Иванов Вася (далее…)

Интерфейсы в C#

Пятница, Июнь 8th, 2012 Нет комментариев

Under : , , , ,

Использование интерфейсов напоминает создание базовых и дочерних классов. В си шарп невозможно напрямую использовать множественное наследование классов, то есть дочерний класс не может наследовать несколько базовых, и эта проблема решается с помощью интерфейсов. Члены интерфейсов по умолчанию доступны всей программе. Иначе говоря, в них описываются методы, присущие любым классам или структурам в текущей программе. Появляется возможность множественного наследования: один класс или структура могут наследовать несколько интерфейсов.
Интерфейсы похожи на абстрактные классы: метод, объявленный в интерфейсе, пустой, то есть не содержит исполняемого кода, называемого реализацией метода. Поэтому он обязательно должен быть переопределен в нужном классе. Чтобы не возникало путаницы, уточним, что невозможно  напрямую создать объект интерфейса, несмотря на то, что это практически абстрактный класс. (далее…)

Наследование классов в С#

Пятница, Июнь 8th, 2012 Нет комментариев

Under : , , , ,

Наследование классов – это способность одного класса использовать свойства и методы, объявленные в другом классе. Класс в си шарп, предоставляющий свои свойства и методы, называется базовым (или родительским), а класс, наследующий их – дочерним. Понятно, что эти два класса логически связаны между собой: например, класс «Человек» – родительский, классы «Женщина» и «Мужчина» — дочерние. У объектов всех трех классов будут общие свойства и методы, например, рост, вес, возраст и т.д., которые исходят из того, что все объекты относятся в первую очередь к классу «Человек». Значит, можно объявить общие свойства единожды в этом классе, а затем наследовать их. (далее…)

Создание и использование методов в С#

Пятница, Июнь 8th, 2012 Нет комментариев

Under : , , , ,

Большое удобство в си шарп, связанное с созданием классов – это возможность конструировать собственные методы. Метод представляет собой блок кода, содержащий инструкцию для совершения некий действий над объектом.
Методы объявляются классе с указанием квантора видимости, т.е. уровня доступа, например, public или private. Чтобы этот блок кода мог обрабатывать конкретные значения, в момент вызова метода ему передаются необходимые аргументы (те самые значения).  У метода может не быть ни одного параметра, может быть один или несколько параметров.  Параметры перечисляются через запятую в круглых скобках, и указываются после имени метода, например: (далее…)

Создание и использование структур в С#

Пятница, Июнь 8th, 2012 Нет комментариев

Under : , , , , ,

Структуры — это облегченная версия классов:

  • Создавая структуры, нет необходимости объявлять конструктор по умолчанию (без аргументов).
  • Структуры, в отличие от классов, не поддерживают наследование.

Классы стоит заменять структурами тогда, когда создается простой объект небольших объемов. Такой способ создания объектов, наряду с перечислениями, делает код удобным для понимания человеком. Структуры объявляются с помощью ключевого слова struct. (далее…)

Создание и использование классов в С#

Пятница, Июнь 8th, 2012 Нет комментариев

Under : , , , ,

Класс – это структура, которая группирует объекты, методы и свойства. Класс можно воспринимать как некий шаблон, который описывает сам программист, определяя новые типы объектов, создавая собственные свойства и методы. Класс объявляется с указанием ключевого слова class вне головной программы, а используется внутри нее.
С точки зрения человеческой логики класс призван объединять объекты, для которых существуют общие свойства, то есть те, которые можно сгруппировать. Например, у каждого человека есть свойства «рост», «вес», «цвет глаз» и т.п.
Рассмотрим простейший пример создания класса, объявление свойства и метода в си шарп:
public class Cat //объявляем класс «Кошка» (далее…)