Работа с Postgresql в C#
Язык программирования C#Не так давно занялся разработкой приложения на C# работающего на базе PostreSQL, появилась информация которой спешу поделиться. В статье я опишу что необходимо для подключения к PostgreSQL из приложения написанного на C#, и как с ним работать на примерах.
Для того чтобы иметь возможность работать с базами данных PostgreSQL в нашем случае будем использовать Npgsql — .Net Data Provider for Postgresql скачиваем, добавляем Npgsql.dll в свой проект и копируем в папку с скомпилированным проектом необходимые библиотеки (чтобы работало): Npgsql.dll и Mono.Security.dll.
Чтение данных из таблиц Excel
Язык программирования C#Многие материалы которые я здесь описываю, я размещаю для самого себя, в основном чтобы мучительно долго не вспоминать как же оно делается и вновь пытать поисковики запросами.
На сей раз опишу простой пример доступа и выборки данных из таблиц Excel в C#. На днях пришлось сим заниматься и в очередной раз вспоминать как оно делается попроще, для больших задач с кучей разных наворотов информации в интернете много. А надо то оно, как обычно бывает, совсем простенько чтоб решало поставленную задачу.
Итак приступим:
Передача параметров между формами в C#
Язык программирования C#Часто возникает необходимость передать определённые параметры между формами в одном приложении, например значения каких либо переменных, или запустить какую либо процедуру или функцию в другой форме. Здесь я расскажу о двух методах решения этой задачи. Описанные методы использую сам, поэтому и публикую. Первый метод попроще, второй посложнее но более универсальный и с большими возможностями.
Работа с FTP сервером из C#
Язык программирования C#Наверное многие сталкивались с необходимостью создать простой FTP клиент для своих нужд на C#. Вот и меня не миновало. Недавно пришлось делать специфическое приложение для обновления ПО через FTP. И самым полезным что я нашёл для этой цели оказался набор библиотечек (кстати с исходниками) BytesRoad.NetSuit. Очень простой компонент предоставляющий весь основной функционал для работы с FTP.
В коплекте 3 библиотеки:
BytesRoad.Diag.dll
BytesRoad.Net.Ftp.dll
BytesRoad.Net.Sockets.dll
Добавляем в наш проект как References вот эти две библиотеки:
BytesRoad.Net.Ftp.dll
BytesRoad.Net.Sockets.dll
Далее о том как работать с компонентом…
Читаль далее...
Свой сервер и клиент к нему при помощи TcpListener и TcpClient
Язык программирования C#Не так давно, наткнулся на одну статейку на Хабре, по поводу TcpListener — там с его помощью делался Web-сервер. Поскольку есть некоторые задачи требующие создания подобного приложения, было решено изучить вопрос и попробовать воссоздать увиденное. Переписал что было в публикации в приложение (всегда так делаю прежде чем скачать исходник — лучше для понимания) запустил, не работает. Точнее работает но через раз — как то кривенько и для реально рабочего приложения не годится. Скачал исходники — тоже самое, работает но через раз. Здесь работает через раз — означает что клиент то цеплялся то не цеплялся к серверу. Решил изучить вопрос с ноля. Накопал некоторый материал в интернете, всё это переработал — получилось тестовое рабочее приложение.
Начну с того, что я хотел сделать: пример состоит из двух приложений — сервера и клиента. (Мне Web-сервер не особо интересен, хотя пример можно достаточно просто переделать в него.)
Сервер — принимает данные от клиента (текст), преобразует строку полученную от клиента к заглавным буквам и отправляет обратно клиенту.
Клиент — отправляет n-ное количество раз заданную строку клиенту (сделано чтобы поназапускав несколько клиентов, в том числе с разных машин, посмотреть как будет себя вести сервер) прибавляя порядковый номерок к посланному тексту и получает такое же количество раз ответ от сервера с текстом заглавными буквами.
Дополнительно — вначале пример был без использования ThreadPool, но потом решил добавить, так сервер должен работать стабильнее (по моему мнению) и обрабатывать большее количество одновременных запросов.
Поскольку код я прокомментировал довольно хорошо, то привожу как есть, без дополнительного описания.
Примеры изменения документов Word из C#
Язык программирования C# В последнее время, довольно часто приходится работать с документами Word из C#. Должен сказать что это неплохой механизм для формирования несложных отчётов. Получается довольно удобно — поскольку Word часто стоит на большинстве пользовательских компьютеров и отпадает необходимость установки на клиентский компьютер дополнительных компонент, вроде Crystal Report (они хоть и хороши, но когда надо что-то совсем простенькое то возможно лучше и без них).
Дополнительно хочется сказать о том, что если по какой либо причине на клиентской машине отсутствуют необходимые компоненты программы Word, то это остаётся практически незаметным, поскольку при первом же обращении они сами устанавливаются (что меня очень приятно удивило, но это касаемо того способа обращения к документам Word — который описан ниже).
Ниже приведены два примера работы с документом Word. Первый иллюстрирует замену текста в документе — удобно использовать при автозаполнении договоров и подстановки нужных значений. Второй иллюстрирует заполнение таблиц — удобно использовать при создании несложных отчётов.
Заполнение ComboBox из DataSet
Язык программирования C#Собственно в чём суть дела, нет ничего проще заполнения ComboBox-а из DataSet-а.
Делается это вот так:
SqlConnection connRC = new SqlConnection(MainParams.ConStr);
string command = "SELECT Kod, Nam FROM Produkt ORDER BY Nam";
SqlDataAdapter da = new SqlDataAdapter(command, connRC);
DataSet ds = new DataSet();
connRC.Open();
da.Fill(ds);
connRC.Close();
comboBox1.DataSource = ds.Tables[0];
comboBox1.DisplayMember = "Nam";
comboBox1.ValueMember = "Kod";
Но работает зараза при больших выборках — адски медленно!
Читаль далее...
Используем Crystal Report в C#
Язык программирования C#В этой статье я приведу пример создания и использования отчёта Crystal Reports в Visual Studio.
Приведённый пример — это реально рабочий проект по подготовке к печати билетов на обычном лазерном принтере.
Начнём с того что нам потребуется источник данных поэтому вначале создадим проект в котором будем использовать наш отчёт и создадим источник данных который выгрузим в XML файл, для более простого и наглядного создания нового отчёта и его настройки.
Класс для работы с базой данных (на примере MySQL)
Язык программирования C#В этой публикации я приведу пример более совершенного класса для работы с базой данных, нежели приводил ранее в этой публикации. Смысл как и прежде в минимизации кода и приведения его (кода) в более удобочитаемый вид.
В примере ниже, в отличие от предыдущего, в отдельном классе реализованы не только методы выполняющие запросы типа (Scalar и NonQuery) но и метод возвращающий набор данных в DataTable. При этом продумана обработка исключительных ситуаций.
Быстрое преобразование цветного изображения в чёрно белое на C#
Язык программирования C# Возможно есть много методов преобразования цветного изображения в чёрно белое, и возможно даже более совершенных, но на данный момент представленный ниже метод, является самым быстрым, среди известных мне.
Преобразование (у меня на компьютере) изображения размером 2,3-2,5 Mb (2560x1920) занимает в среднем 0,3 секунды. На мой взгляд и для моих целей неплохой результат.
Суть метода заключается не в работе с самой картинкой а в работе с блоком данных, если очень просто — то замораживаем область данных с картинкой в памяти — изменяем её как нам надо, и возвращаем всё на круги своя.