• Как сделать изменение размера прямоугольника по MouseMove без потери производительности в WPF?

    @Sumor
    Поверх элементов создаёшь Canvas, на нём Rectangle, который будет отображать выделение.
    По нажатию кнопки мыши делаешь Rectangle видимым и фиксируешь одну точку. По MouseMove устанавливаешь вторую. Перерисовкой занимается сам WPF, новых элементов по MouseMove не появляется и рывков нет.
    Ответ написан
    1 комментарий
  • Свойство ConnectionString не инициализировано. Как исправить?

    @Sumor
    Соединение у вас работает только в рамках using. Оно же его и закрывает.
    Либо нужно создавать и долго хранить SqlConnection, скорее всего всё время работы программы.
    Либо в обработчике ButtonSave_Click заново создайте SqlConnection и присвойте его свойству adapter.Connection.

    Пересоздание SqlConnection в короткий промежуток времени не приводит к физическому пересозданию соединения с базой данных, так как провайдер какое-то время после закрытия ещё держит соединения на случай если они понадобятся.
    Ответ написан
  • Как исправить исчезание полигона в pictureBox?

    @Sumor
    Всё рисование нужно делать в обработчике события Paint, которое возникает во время перерисовки контрола.
    Вы рисуете в контроле, но при перерисовке контрола он очищается и "забывает" всё что было нарисовано. Дляя этого и нужно заново рисовать график в событии Paint
    Ответ написан
    Комментировать
  • Почему в HAVING работают псевдонимы из SELECT?

    @Sumor
    HAVING накладывает условия на уже выполненный и отобранный запрос, в котором уже есть псевдонимы, а всё остальное работает перед окончательной выдачей, где псевдонимов ещё нет.
    Ответ написан
    Комментировать
  • Как найти доступные множители числа?

    @Sumor
    Если вам не нужны множители, а нужна лишь проверка на составное число, то можно воспользоваться тестом Ферма.
    Подробнее статья на Хабре: Алгоритм проверки на простоту за O (log N)
    Ответ написан
    Комментировать
  • Как отрубить оптимизатор в С#?

    @Sumor
    Если создавать Random в одно время, то они будут инициироваться одним и тем же числом. Настоящая генерация псевдослучайных чисел происходит при вызове метода Next и должна вызываться у одного и того же объекта Random.
    Создайте один раз Random, инициировав его, например, количеством тиков: new Random((int) DateTime.Now.Ticks & 0x0000FFFF).
    Конструктор Random (Int32)
    Затем используйте Next(), для получения следующих чисел.
    Ответ написан
    1 комментарий
  • WPF, Как сгенерировать таблицу наподобие Excel?

    @Sumor
    Можно примерно так. Заводишь класс с основным объектом, примерно такой:
    public class Worker
    {
    public string FIO {get;set;}
    public SpanTime WorkTime {get;set;}
    }

    Для отображения списка рабочих используете ListBox с шаблоном из двух текстбоксов:
    <ListBox x:Name="lst">
    <ListBox.ItemTemplate>
    <DataTemplate>
    <Grid>
    <Grid.ColumnDefinitions>
    <ColumnDefinition Width="100" />
    <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <TextBox Text="{Binding FIO}" />
    <TextBox Text="{Binding WorkTime}" Grid.Column="1"/>
    </Grid>
    </DataTemplate>
    </ListBox.ItemTemplate>
    </ListBox>

    И заполняете своими данными:
    lst.ItemSource = new List<Worker>() {new Worker(){FIO = "Иванов"}, new Worker(){FIO = "Петров"}};


    Но лучше найти какой-нибудь контрол табличный и работать с ним.
    Ответ написан
  • Как обновить несколько строк в таблице?

    @Sumor
    Не мешало бы уточнить какой язык используете, ну да ладно.
    В целом, лучше генерировать запрос с параметрами, а затем их подставлять.
    Если число параметров неизвестно, то вы можете добавить их в цикле. Получится примерно следующее (результат будет зависеть от вашего языка).
    var query = "UPDATE products SET deleted = true WHERE id  IN(${p1}";
    for(var i = 2; i <= products.length; i++)
    {
        query += ", ${p" + i + "}"; 
    }
    query += ");";
    return db.query(query, products);

    Для вашего примера запрос должен получиться таким:
    UPDATE products SET deleted = true WHERE id  IN(${p1}, ${p2}, ${p3});
    Ответ написан
    1 комментарий
  • Разрастается журнал транзакции в MS SQl 2012? ,база в зеркале, как уменьшить журнал?

    @Sumor
    Что-бы журнал не рос нужно делать сохранение лога.
    То есть помимо зеркалирования, вы должны периодически сохранять базу данных и лог данных.
    Сохранение лога остановит разрастание файла лога. При этом сразу файл не удастся уменьшить, так как конец файла будет использоваться sql-сервером. Когда вы через какое-то время второй раз сохраните лог, то sql-сервер даст вам уменьшить файл.
    NB: для сохранения лога вам может понадобиться до 210 ГБ .
    Ответ написан
    Комментировать
  • Почему не получается подключить неуправляемую dll?

    @Sumor
    Посмотрите на разрядность библиотеки и программы на C#.
    Программа на C#, если ничего не менять, запускается под x64. TDM-GCC скорее всего компилирует для x86.
    Подключаемые библиотеки должны соответствовать программе из которой они вызываются.
    Приведите всё к x64 или x86.
    Ответ написан
    Комментировать
  • WINAPI Смена стиля с CHILD на родительский или как вынести дочернее окно за пределы родителя?

    @Sumor
    Для выноса элемента за пределы родительского у него должен быть стиль WS_POPUP вместо WS_CHILD.
    Ответ написан
    Комментировать
  • Компоненты WPF: DevExpress или Telerik?

    @Sumor
    Посмотрите ещё ComponentOne
    Русский язык для кнопок и подписей есть по-умолчанию.
    Ответ написан
    Комментировать
  • Как реализовать Hierarchicaldatatemplate в caliburn micro?

    @Sumor
    Наверно вы забыли у самого Treeview установить itemssource.
    После установки в ItemsSource всех контрактов у вас они отобразятся, и у каждого будут отображены продукты из свойства product.
    <TreeView>
            <TreeView.ItemTemplate>
                 <HierarchicalDataTemplate ItemsSource="{Binding Path=product}">
                        <TextBlock Text="{Binding} />
                  </HierarchicalDataTemplate>
            </TreeView.ItemTemplate>
     </TreeView>

    Таким образом у вас в Treeview будут отображены и контракты и продукты.
    Если вы хотите разные шаблоны для отображения каждого из объектов их нужно выбирать через templateselector или проще без указания TreeView.ItemTemplate в ресурсах задать два типизированных шаблона, что-то типа:
    <HierarchicalDataTemplate DataType="{x:type l:product}">...

    Что касается динамической подгрузки, то по-умолчанию TreeView загружает данные целиком. И поэтому у вас прогрузятся всё что будет отражено. Если вы хотите динамическую загрузку - читайте про виртуализацию. применительно к Treeview.
    Ответ написан
  • Как сравнить произвольные фигуры?

    @Sumor
    Прежде чем сравнивать нарисованные круги с эталонным, нужно определиться с мерой по которой вы будете сравнивать. Возможные варианты мер:
    1. Радиус.
    2. Площадь.
    3. Расположение центра
    Про расположение центра вам уже написали.
    Площадь можно посчитать в точках, расположенных внутри нарисованной фигуры (Цикл по x и y - проверяете принадлежность точки нарисованной фигуре).
    Для подсчёта радиуса нужно выбрать количество разбиений круга - 360, 100, 50 и подсчитать отклонение (линейное, квадратичное или любое подходящее) радиуса по указанным направлениям. В простейшем случае можно просто подсчитать максимальный и минимальный радиус нарисованного круга и сравнивать их.
    Ответ написан
    Комментировать
  • Обновление Blob поля?

    @Sumor
    Если я правильно понял, то примерно так (имя таблицы, колонок подставите свои):
    UPDATE table
    SET
    [blob] = (SELECT [blob] FROM table WHERE id = 555)
    WHERE id != 555
    Ответ написан
    4 комментария
  • Как ускорить подключение к БД MS SQL (tedious + NODE) в AZURE?

    @Sumor
    1. Если у вас включён ipv6, но не настроен и не используется, то отключите его. Сначала имя компьютера резолвится по ipv6. В качестве теста попробуйте заменить имя сервера на его ip-адрес.
    2. Если у вас корпоративная сеть без выхода в интернет, то при подключении может проводиться проверка отзыва сертификата подключаемого сервера, которая будет пытаться подключиться к серверу проверки отзывов сертификатов. В этом случае эту проверку нужно отключить в системе.
    Ответ написан
    Комментировать
  • Почему переведенное слово отображается в виде кодировки?

    @Sumor
    Собственно нормальный ответ: английские буквы в utf8 - это просто английские буквы, а русские буквы в utf8 закодированы шестнадцатеричными символами, в данном случае они вам вернулись с префиксом %:
    D09F - П
    D180 - р
    D0B8 - и
    D0B2 - в
    D0B5 - е
    D182 - т
    Ответ написан
    Комментировать
  • Как вывести таблицу из БД в TreeView WPF?

    @Sumor
    Нужно создать класс примерно такого вида:
    class Item
    {
      public string Name {get;set;}
      public IEnumerable<Item> Children 
      {
        get {/* тут код получения из базы подчинённых элементов*/}
      }
    }

    Получить список элементов верхнего уровня и присвоить ItemsSource у TreeView.
    У TreeView в описании шаблона для элемента (ItemTemplate) описать HierarchicalDataTemplate и указать свойство для получения подчинённых элементов в ItemsSource={Binding Children}.
    <TreeView>
      <TreeView.ItemTemplate>
        <HierarchicalDataTemplate ItemsSource="{Binding Children}">
          <TextBlock Text="{Binding Name}" />
        </HierarchicalDataTemplate>
      </TreeView.ItemTemplate>
    </TreeView>
    Ответ написан
    2 комментария
  • Какой "длины" может быть INSERT? Как импортировать 1 млн строк?

    @Sumor
    Прочитайте раздел документации и выполните рекомендации
    optimizing-innodb-bulk-data-loading

    Нужно максимально отключить дополнительную работу БД: автоинкременты, индексы, триггеры, констрейнты, если есть возможность загружать без транзакций (Bulk load).
    Может будет лучше загрузить во временную таблицу в памяти через load xml, а затем вставить в свою таблицу ерез insert into ... select ...
    Ответ написан
    3 комментария
  • Принадлежность точки октанту?

    @Sumor
    Примерно так:
    k = (((uint)x&0x80000000) >> 31) | (((uint)y&0x80000000) >> 30) | (((uint)y&0x80000000) >> 29);

    Нумерация не совпадает с предложенной по ссылке, но точки из одного октанта будут сопоставлены одному числу от 0 до 7.
    Ответ написан
    Комментировать