Рекурсивная процедура поиска элементов ветки дерева в FireBird и Interbase

Время от времени приходится общаться с СУБД FireBird и Interbase. И вот недавно возникла необходимость поиска и выбора всех вложенных элементов дерева. В моём случае необходимо было удалить все вложенные группы дерева при удалении родительской группы и в дальнейшем организовать поиск всех вложенных элементов.

Удаление можно сделать на триггерах, а вот с поиском так не прокатит. Поэтому используем рекурсивную процедуру выборки. (заранее оговорюсь, рекурсия — это вариант для небольших и не очень нагруженных БД, если база большая и нагрузка на СУБД планируется существенная, то рекурсии лучше избежать, пример того как это можно сделать будет ниже)

Подробнее

Динамический вывод картинок в отчётах Crystal Report на C#

В данной публикации я расскажу каким образом в отчёт Crystal Report можно вывести требуемое количество изображений (например из базы данных).

!!! Для того чтобы публикация была понятна, рекомендуется к обязательному прочтению предыдущая статья Используем Crystal Report в C#.

Собственно, перепробовав много методов (в основном описанных на зарубежных сайтах — в Ру-нете как то не особо изучен этот вопрос), нашёл действительно работоспособный и эффективный метод вывода изображений в отчёт Crystal Report, который заключается в передаче изображений в отчёт через источник данных.

Подробнее

Убираем панель задач на .NET CF 2.0 (делаем Full Screen) C#

Недавно столкнулся с проблемой, что FormWindowState.Maximized не везде работает. Например у меня на одном из устройств с Windows CE 6.0 — отказалось работать, и ни какие танцы с бубнами не помогали. Долго копался в интернете, в русскоязычном ничего не нащёл, набрёл на руководство на одном англоязычном сайте.

Сделал у себя, заработало!

Итак, проблема решается тремя функциями из coredll.dll:

//Отображает тем или иным способом окно (в том числе и скрывает его).
[DllImport("coredll.dll", CharSet = CharSet.Auto)]
public static extern bool ShowWindow(int hwnd, int nCmdShow);

//Делает окно доступным либо недоступным (убрать с экрана либо показать).
DllImport("coredll.dll", CharSet = CharSet.Auto)]
public static extern bool EnableWindow(int hwnd, bool enabled);

//Находит нужное окно по наименованию.
[DllImport("coredll.dll")]
public static extern int FindWindow(string className, string windowName);
Подробнее

Свой сервер и клиент к нему при помощи TcpListener и TcpClient C#

Не так давно, наткнулся на одну статейку на Хабре, по поводу TcpListener — там с его помощью делался Web-сервер. Поскольку есть некоторые задачи требующие создания подобного приложения, было решено изучить вопрос и попробовать воссоздать увиденное. Переписал что было в публикации в приложение (всегда так делаю прежде чем скачать исходник — лучше для понимания) запустил, не работает. Точнее работает но через раз — как то кривенько и для реально рабочего приложения не годится. Скачал исходники — тоже самое, работает но через раз. Здесь работает через раз — означает что клиент то цеплялся то не цеплялся к серверу. Решил изучить вопрос с ноля. Накопал некоторый материал в интернете, всё это переработал — получилось тестовое рабочее приложение.

Начну с того, что я хотел сделать: пример состоит из двух приложений — сервера и клиента. (Мне Web-сервер не особо интересен, хотя пример можно достаточно просто переделать в него.)

Подробнее