T-SQL CAST использование в EntityDataSource

Август 16th, 2012 § 0 comments § Прямая ссылка

Всем привет, хочу поделится некоторым опытом использования EntityDataSource, а именно использования оператора LIKE к полю типа int в MS SQL при обычном запросе к с использование T-SQL запрос бы выглядел следующим образом


SELECT *FROM table1 WHERE CAST(UserId as NVARCHAR(10)) LIKE '1%';

этим запросом мы получим всех пользователей UserId у которых будет начинаться с единицы.  Если вы попробуете ввести в EntityDataSource в условие Where такую же конструкцию то неминуемо получится Exception, что бы этого не произошло запрос нужно переписать в следующей форме


EntityDataSource1.Where = "CAST(UserId as System.String) LIKE '1%';"

Как видите здесь используются типы не MS SQL а типы C# так что при приведении одних типов к другим в EntityDataSource не забывайте о том что должны работать с типами C# внутренний механизм в EntityDataSource в последствии приведёт данные к соответствующему типу MS SQL.

Ошибка MySQL Error 2006 и Error 1265

Май 15th, 2012 § 0 comments § Прямая ссылка

Когда работал с MySQL получи эти две ошибки при накатывании большого дампа.

Первая это ошибка MySQL Error 2006 MySQL has gone away.

Бороться с ней следующим образом нужно увеличить размер максимально допустимого пакета в настройках нужно выставить следующую опцию


[mysqld]
max_allowed_packet=64M

По этой ссылке узнаете подробнее.

Continue reading “Ошибка MySQL Error 2006 и Error 1265” »

Очень полезный расширитель для работы с Image в .NET

Апрель 6th, 2012 § 0 comments § Прямая ссылка

Если есть те кто работал в .NET и пытался сохранить файл в jpeg и после этого получал исковерканное сжатием изображение те поймут. Привожу класс расширитель взятый с просторов интернета так что пользуйтесь. В классе методы для изменения размера изображения без потери качества, сохранения изображения без потери качества и тд. Код ниже:

Continue reading “Очень полезный расширитель для работы с Image в .NET” »

C# Image ExternalException и прочие превратности класса

Апрель 6th, 2012 § 0 comments § Прямая ссылка

В последние дни намучился с этим классом и хочу поделится своим опытом, что бы вы не совершали моих ошибок, а совершали свои ))) Начнем, первое, что нужно это загрузить изображение вот наш первый и самый большой айсберг. У нас есть несколько простых способов как это сделать.


Image img = Image.FromFile("someimg.jpg");

FileStream fileStream = new FileStream("someimg2.jpg",FileMode.Open);

Image img2 = Image.FromStream(fileStream );

MemoryStream memStream = new MemoryStream(File.ReadAllBites("someimg3.jpg"));

Image img3 = Image.FromStream(memStream );

Continue reading “C# Image ExternalException и прочие превратности класса” »

Заметки об OpenGL ES в Android

Март 26th, 2012 § 0 comments § Прямая ссылка

Сегодня я хотел бы рассказать о некоторых моментах в работе с OpenGL ES в Android информации по этому поводу не так уж много и большая её часть англоязычная. Первое что хотел бы сразу отметить, старайтесь тестировать на устройстве т.к. очень часто бывает, что отображается на эмуляторе, то может не отображаться на устройстве и наоборот. Первое что мы должны сделать, это имплементировать класс GLSurfaceView и интерфейс GLSurfaceView.Renderer. Базовый код будет выглядеть примерно так.

Класс Run унаследованный от Activity


import android.app.Activity;
import android.opengl.GLSurfaceView;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;

public class Run extends Activity {

private SurfaceView glSurfaceView;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
glSurfaceView = new SurfaceView(this);
setContentView(glSurfaceView);
}

/**
* Remember to resume the glSurface
*/
@Override
protected void onResume() {
super.onResume();
glSurfaceView.onResume();
}

/**
* Also pause the glSurface
*/
@Override
protected void onPause() {
super.onPause();
glSurfaceView.onPause();
}

}

Continue reading “Заметки об OpenGL ES в Android” »

C# удаление всех файлов и папок в указанной диретории

Март 7th, 2012 § 0 comments § Прямая ссылка

Задача тривиальна, но что бы не забыть выкладываю сюда


public static void CleanFilesAndDirectories(System.IO.DirectoryInfo directory)
{
foreach (System.IO.FileInfo file in directory.GetFiles()) file.Delete();
foreach (System.IO.DirectoryInfo subDirectory in directory.GetDirectories()) subDirectory.Delete(true);
}

C# конвертировать Image в byte[] и обратно из byte[] в Image

Март 2nd, 2012 § 1 comment § Прямая ссылка

Стояла такая задача, нашел элегантное решение на CodeProject, делюсь им.

public static byte[] imageToByteArray(System.Drawing.Image imageIn)
{
	MemoryStream ms = new MemoryStream();
	imageIn.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
	return  ms.ToArray();
}
public static Image byteArrayToImage(byte[] byteArrayIn)
{
	MemoryStream ms = new MemoryStream(byteArrayIn);
	Image returnImage = Image.FromStream(ms);
	return returnImage;
}

Cсылка на codeproject’e

C# кастомное отображение элементов в CheckedListBox

Март 1st, 2012 § 0 comments § Прямая ссылка

Подсмотрел на gotdotnet.ru способ как элементы СheckedListBox выделить цветом или другим шрифтом, решил поделится. Нужно создать свой контрол и унаследовать его от CheckedListBox, при этом переопределив метод OnDrawItem дело в том что он имеет атрибут [BrowsableAttribute(false)] и в режиме дизайнера доступа к нему нет, так что это следует сделать в ручную. Вот пример того как переопределив этот метод, мы подсвечиваем третий элемент в списке CheckedListBox.


public class UserCheckedListBox : CheckedListBox
{
protected override void OnDrawItem(DrawItemEventArgs e)
{
base.OnDrawItem(e);
if(e.Index==2)
{
DrawItemEventArgs e2 = new DrawItemEventArgs(e.Graphics,e.Font,e.Bounds,e.Index,e.State,Color.Red,e.BackColor);
base.OnDrawItem(e2);
}
}
}

Убрать мерцание формы в C#

Февраль 21st, 2012 § 0 comments § Прямая ссылка

Если вы рисуете на форме или часто вызываете метод invalidate(), то форма начинает мигать, не вооруженным глазом видна перерисовка. Что бы устранить этот артефакт, добавьте в конструктор формы следующую строку


this.DoubleBuffered = true;

Создание своих контролов и drag & drop

Февраль 16th, 2012 § 0 comments § Прямая ссылка

Делал сегодня реализацию своих контролов в силу того что те задачи что ставились не могли решиться стандартным набором. Вкратце как это делается, создается класс, наследуемый от существующего контрола, либо  от базового класса Control, в нем уже переопределяется поведение контрола. Все достаточно ажурно. Хотел бы еще сделать замечание как сделать контрол перетаскиваемым. В обработчик onMouseDown добавляем функцию DoDragDrop(obj,DragDropEffects.Move); obj – это тот объект, что мы будем передавать принимающей стороне. Принимающий контрол должен иметь свойство AllowDrop, установленное в true и в событие DragEnter должно содержать код


private void onDragEnter(object sender, DragEventArgs e)
         {
             e.Effect = DragDropEffects.Move;

         }

в событии DragDrop мы получим наш объект, остается его только распаковать из object в исходный объект.

Смотреть фильмы онлайн