Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET

Автор: fvgrod
Дата сообщения: 03.03.2008 13:30
Dem_anywhere Спасибо!!!
Автор: BaluBig
Дата сообщения: 03.03.2008 13:32
fvgrod

Цитата:
1) Можно ли выключить BackgroundWorker в любой момент?
(Есть функция CancelAsync() - только я так и не понял, что она в итоге делает)
Принудительно из вызывающего потока - нельзя. CancelAsync() взводит флаг BacgkgroundWorker.CancellationPending, а твой код (который есть обработчик события DoWork) должен периодически проверять этот флаг и завершать работу. Для того, что бы можно было прервать выполнение принудительно, нужно вручную работать с классом Thread и вызывать Thread.Abort().

Цитата:
2) Как отправлять MessageBox из BackgroundWorker?
Как обычно. Правило состоит в том, что нельзя к элементам GUI обращаться из потока, отличного от того, в котором элемент создан. Таким образом создание и работа с окном полностью в другом потоке возможна.

Автор: fvgrod
Дата сообщения: 04.03.2008 01:37
BaluBig Спасибо, разобрался.

И еще пожалуйста вопросик:
Создал элемент lstViewUsers, подгрузил список в colUserName.
Как автамотически сделать активной первую либо заданную строчку?
Все настройки перековырял, но так и не напал на нужную.
Автор: EZH
Дата сообщения: 04.03.2008 07:53
fvgrod
Ты не названия контролов указывай, а тип, а то догадываться приходится.
lstViewUsers - это ListView? Тогда для выделения элемента надо не у ListView свойство искать, а у самого элемента списка выставить Selected = true.


Код:
ListViewItem li = new ListViewItem("User");
lstViewUsers.Items.Add(li);
li.Selected = true;
Автор: s5656
Дата сообщения: 05.03.2008 08:13
хмм.. у кого нибудь есть примеры по отправке смс?

***отправка смс нужна не по средствам сайта, а средствами самого устройства..
Автор: BaluBig
Дата сообщения: 05.03.2008 15:13
s5656
Такой пример пойдет? Есть еще другой пример, но он на С++, за то без прослоек вроде Pocket Outlook.

Google rulez
Автор: Mike13x13
Дата сообщения: 07.03.2008 12:25
Народ, подскажите, плиз:
метод получает стринг - имя файла, задача - запустить ассоциированное по расширению
с этим файлом приложение. Т.е., фактически сымитировать даблклик по имени файла в эксплорере. Наличие ассоциированного приложения не заботит - хай винда сама разбирается. Хоть в каком неймспейсе рыть-то?

Ссори, уже нарыл, кому интересно - неймспейс System.Diagnostics, класс - Process
Но есть еще вопрос, уже по веб тематике. Из окна 1 броузера я открываю окно 2, в котором произвожу некоторые
действия -выбираю значения, которые должны отображаться в текстбоксах в окне 1, сохраняю в базу закрываю
окно 2. При этом хочу, чтоб в окне 1 (родительском) в соответствующих текстбоксах появились выбранные мной в окне 2 (дочернем) значения (без каких-либо действий юзера типа рефреша окна). Если кто может - плиз код (можно ява-скрипт на стороне клиента, можно шарповский).
Автор: Viverra
Дата сообщения: 08.03.2008 16:37
Mike13x13
шарповским не получится, работа вся на стороне клиента, про JavaScript/Ajax быстрей в Web-программировании помогут, это к .NET не привязано
Автор: 0ndrash
Дата сообщения: 11.03.2008 11:48
Mike13x13
window.opener.frmMain.txtName.value="test";

читни
http://www.webreference.com/js/tutorial1/opener.html
Автор: TeXpert
Дата сообщения: 11.03.2008 12:03
Есть такая ситуация: есть на панельке несколько GroupBox, на некоторых их них -- компонента типа RichTextBox, у которого число строк заранее низвестно. Хочу сделать так, чтобы в зависимости от количества его строк сам RichTextBox привести под содержимое (изменить высоту), соответственно, находящиеся ниже GroupBox'ы -- сдвигать. Вопрос: если просто сдвину GroupBox программно, находящиеся на нём компоненты тоже ведь сдвинутся, поскольку они на контейнере?
Автор: fvgrod
Дата сообщения: 11.03.2008 21:21
EZH
Код:
ListViewItem li = new ListViewItem("User");
lstViewUsers.Items.Add(li);
li.Selected = true;

Подскажите плиз, как сделать "выделенным" заданный Item li?
При нажатии мышкой данный итем выделяеться синим цветом, а так не водимости выбранного итема.

Добавлено:
И в догонку... вроде выделил:
lstViewUsers.Select();

Но параметр клавишей "Вниз", "Вверх" сбрасываеться и получаеться:
к примеру выделяем восьмую строчку, нажимаем клавишу "вниз" и у нас перескакивает на вторую, а вверх вооюще не нажимаеться так как для клавиатуры выбрана первая строчка.
Автор: V0lt
Дата сообщения: 11.03.2008 22:43
fvgrod
текущий элемент переназначается так

Код: lstViewUsers.Items[i].Focused = true;
Автор: Mike13x13
Дата сообщения: 12.03.2008 11:37
Viverra
0ndrash
Большое спасибо. Я лет 5 назад что-такое делал, но с тех пор уже подзабыл. А сейчас снова столкнулся с этой тематикой.
Автор: sdubovitsky
Дата сообщения: 12.03.2008 14:51
TeXpert

Как один из вариантов, расположи групбоксы через сплиттеры. Это даст возможность мышкой изменять размеры групбокса, соседние с ним будут менять размер при этом сами. Останется только в зависимости от количества строк в ричедите менять размер групбокса.
Автор: Mike13x13
Дата сообщения: 18.03.2008 15:48
Может кто сталкивался: имеется select * from table where text like '%SLOVO%' (MS SQL2000). Проблема: при запросе из квери аналайзер и т.п. запрос отрабатывается как и положено по документации. Если делаю запрос из кода (C#) получаю только результаты, где SLOVO не находится в text в самом начале. Тип text - varchar . Есть какие-нить соображения, почему енто происходит и как с этим бороться?
Автор: BaluBig
Дата сообщения: 18.03.2008 15:57
Mike13x13
Среди инструментов MSSQL существует Profiler. Запусти его и посмотри какой запрос реально уходит серверу. Выполни его в Query Analyzer. А дальше в зависимости от результата.
Автор: Mike13x13
Дата сообщения: 18.03.2008 16:42
BaluBig
Спасибо за совет, о Profilerе я и забыл. Но, тем не менее, результат не изменился - запрос в профайлере я вижу, в аналайзере он дает правильный результат (находит все), при запросе же из кода результаты, где искомое слово находится в поле только на первом месте, не находятся - черт знает что.
Еще интересней - накидал консольный тест только для прогона этого запроса - работает правильно. Счас еще сделаю в винформ ....
Автор: V0lt
Дата сообщения: 18.03.2008 18:11
Создаю WindowsApplication, кидаю на форму NumericUpDown, cтавлю свойство ReadOnly.
Запускаю и наблюдаю следующее: NumericUpDown с виду действительно только для чтения, текст вбить нельзя, можно лишь скопировать, но если нажать на миникнопки верх/низ, значение меняется
Как заблокировать эти кнопочки?
Автор: Mike13x13
Дата сообщения: 18.03.2008 19:05
V0lt
Поставь NumericUpDown1.Enabled=false;

BaluBig
Сделал тест в винформ - тоже работает правильно, пришлось порыть код, нашел баг. Извиняюсь за напрасное беспокойство
Автор: V0lt
Дата сообщения: 18.03.2008 22:24
Mike13x13

Цитата:
Поставь NumericUpDown1.Enabled=false;

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

Добавлено:
ничего умнее, чем обнулить приращение не придумал
получилось так

Код: numericUpDown1.ReadOnly = true;
numericUpDown1.Increment = 0;
Автор: BaluBig
Дата сообщения: 20.03.2008 13:47
По ряду причин меня перестали устраивать стандартные компоненты ToolStrip, ToolStripItem и производные от них. Никто не знает бесплатной и с исходниками библиотеки для работы с меню и тулбарами?
Автор: Mike13x13
Дата сообщения: 20.03.2008 17:51
V0lt

Цитата:
Mike13x13

Цитата:Поставь NumericUpDown1.Enabled=false;


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

Добавлено:
ничего умнее, чем обнулить приращение не придумал
получилось так


Чё, для такой надобности нормально получилось
Автор: 0ndrash
Дата сообщения: 21.03.2008 00:13
V0lt
Если будешь много readonly NumericUpDown контролов использовать, то есть смысл заюзать такое решение:
http://www.codeproject.com/KB/miscctrl/Fixed_NumericUpDown.aspx
Автор: V0lt
Дата сообщения: 21.03.2008 23:34
0ndrash
спасибо
Как я понимаю там создают копию контрола с измененными методами DownButton/UpButton. И чую что этим пофиксенным контролом будет не так удобно работать, в том смысле чтобы добавить его на форму придется не мышкой кидать, а вручную прописывать в коде. Или я не прав?

Там дальше идет коментарий "Fix without replacing the control". Вроде чел пытается решить проблему без нового контрола, только что он мудрит я не понял
Автор: fvgrod
Дата сообщения: 22.03.2008 21:55
Если строчек в базе более 100 тысяч, то периодически выпадает ошибка:
System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
…..

выполняю команду
Sql.Base.bool_AllDelete = false;
Sql.Base.AllDelete();
a:
if (Sql.Base.bool_AllDelete != true)
{
Thread.Sleep(1000);
goto a;
}
...

public static void AllDelete()
{
// Объекты подключения
SqlConnection myConnection = new SqlConnection();
SqlCommand myCommand = new SqlCommand();

// Задаем переменные
myConnection.ConnectionString = Sql.Connect.ConnectionString;
myCommand.Connection = myConnection;
myCommand.CommandType = CommandType.Text;

// Чтение параметров программу
myCommand.CommandText = "DELETE FROM [mail]";
try
{
myCommand.Connection.Open();
myCommand.ExecuteNonQuery();
myCommand.Connection.Close();

}
catch (SqlException ex)
{
SQL_Error = true;
SQL_Error_Text = ex.ToString();
}
bool_AllDelete = true;
}

Добавлено:
Подскажите пожалуйста в чем трабла и как ее наладить(
Автор: EZH
Дата сообщения: 22.03.2008 22:12
fvgrod
if и goto использовать не модно Есть же цикл while.
Для удаления всех записей из таблицы есть намного более эффективная SQL-команда TRUNCATE.
Автор: fvgrod
Дата сообщения: 23.03.2008 11:13
EZH
Спасибо попробую.
Автор: BaluBig
Дата сообщения: 23.03.2008 13:06

Цитата:
Для удаления всех записей из таблицы есть намного более эффективная SQL-команда TRUNCATE.
Эта команда не работает, если на таблицу имеются ссылки через FK. Так что удалять данные порциями, после каждой порции - commit.
Автор: fvgrod
Дата сообщения: 23.03.2008 23:11
И все равно вылетает ошибка при долгом копировании таблиц с выборкой или импотрировании данных из текстового файла:
System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.

В чем может быть трабла?
Автор: BaluBig
Дата сообщения: 24.03.2008 09:15
fvgrod
Трабла в том, что операция длится дольше, чем установленное время таймаута... Отсюда два выхода: дробить операцию на несколько (это лучший выход) и увеличить время таймаута.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102

Предыдущая тема: Как удалить/добавить/отключить/включить устройство?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.