Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162

Открыть новую тему     Написать ответ в эту тему

EZH



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
AlexandrVS
У MapInfo есть свои расширения SQL языка функциями работы с геоинформаций. Т.е. когда ему нужны объекты определенного слоя и, скажем, с заданным пользователем свойством для выборки, он не выбирает все, а прежде всего отсекает те, что не попадают в видимую область карты и количество обрабатываемых ID становится не таким страшным. Это легко наблюдать, когда включены все слои и не настроена зависимость отображения слоя от масштаба.

Всего записей: 1738 | Зарегистр. 02-09-2004 | Отправлено: 16:09 10-01-2009
BaluBig



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
AlexandrVS
Гисы заточены под такую работу специально, тут средствами стандартной СУБД тягаться с ними невозможно.
Что приходит в голову:
* забрать всю таблицу с объектами на клиента
* построить Dictionary для нее, ключем будет Id, значением - индекс записи
* при проходе по массиву нужных Id искать в Dictionary нужный Id (это O(log n) если я не ошибаюсь, т.е. быстро), в результате получаем индекс записи.  
Да, это расход памяти. Но память сейчас подешевела

Всего записей: 404 | Зарегистр. 06-02-2004 | Отправлено: 14:36 11-01-2009
085



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
не соображу.Хочу передавать в метод значение @param для параметр. запроса.И чтобы тип перед-го параметра определялся тут же в методе, например с помощью GetType. Но тогда какого типа должен быть @param?
надеюсь вопрос правильно задаю

Всего записей: 79 | Зарегистр. 17-09-2008 | Отправлено: 10:19 12-01-2009
Lazy KoT



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
085

Цитата:
Но тогда какого типа должен быть @param?

object

Всего записей: 204 | Зарегистр. 10-09-2004 | Отправлено: 13:23 12-01-2009
cek7



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Подскажите пожалуйста. Для большей наглядности отображения табличных данных, хотел выделить чётные и нечётные строки dataGridView разными цветами. Написал вот такой код:
 
dataGridViewFTPLog.DataSource = dataSetFTPLog;
dataGridViewFTPLog.DataMember = "Sessions";
                 
//раскраска строк (красиво, но тормозит процесс загрузки)
/*
for (int row = 0; row < dataGridViewFTPLog.Rows.Count; row++)
      if (row % 2 == 0) dataGridViewFTPLog.Rows[row].DefaultCellStyle.BackColor = Color.Ivory;
      else dataGridViewFTPLog.Rows[row].DefaultCellStyle.BackColor = Color.Honeydew;
*/
Но при его выполнение время вывода данных сильно увеличилось, пришлось отключить данный блок кода.
Может быть кто нить знает как сделать красиво и не потерять производительность?
 
Добавлено:
Отбой. Кому интересно нашёл решение проблемы в MSDN
 
private void dataGridViewFTPLog_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
        {
            if (e.RowIndex % 2 == 0) e.CellStyle.BackColor = Color.Ivory;
            else e.CellStyle.BackColor = Color.Honeydew;
        }

Всего записей: 36 | Зарегистр. 07-01-2009 | Отправлено: 18:47 12-01-2009 | Исправлено: cek7, 18:50 12-01-2009
AlexandrVS

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EZH
BaluBig
 Спасибо, буду пробывать, пока вышел тупо заполняю временную таблицу в базе и дальше запросами вытаскиваю инфу, все отрабатывает быстро кроме записи датасета в базу ну пока подождут.  
BaluBig
 Идея со словарем интересна,но как потом с другими таблицами в базе такую штуку связать, этот вариант подойдет наверное если только все в одну таблицу положить, да? Если ошибаюсь можешь по подробнее про дальнейшую работу с индекс записи рассказать.
 
Добавлено:
cek7
Есть ещё один простой способ раскрасить четные строки другим цветом
 
dataGridView1.AlternatingRowsDefaultCellStyle.BackColor = System.Drawing.Color.AliceBlue;
 
И все! После этого все четные строки будут раскрашены этим цветом торможения не замечал.
 

Всего записей: 50 | Зарегистр. 04-05-2006 | Отправлено: 09:30 13-01-2009
EZH



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
AlexandrVS
Тебе надо изначально изменить подход к работе с геоданными. Как я говорил, секрет быстроты работы ГИС-ов именно в первичной работе с координатами, а уж потом на уровне ID. Ты говоришь:

Цитата:
Просто у меня есть графический слой с объектами, которые с базой могут связаться только с помощью ID (int32), я видел как быстро такую штуку отрабатывают разные ГИСы, но не знаю как они это делают.

Но ведь кроме ID у тебя так или иначе есть коордиаты объектов. Секрет быстроты доступа ГИС-ов к объетам в том, что они строоят так назывемые Квад-деревья по координатам объектов и ключ в этом дереве для них является первичным индеском для доступа (т.к. доступ по дереву на порядки быстрее прямого сканирования ID), и уже на самом низком уровне детализации дерева у них остается в мелкий набор ID, который они просто селектят. При работе, имея координаты объекта они быстро вычисляют ключ квад-дерева, куда этот объект попадает, селектят объекты по этому ключу и получают маленькую кучку их ID.
 
Про квад-деревья можно тут почитать (english inside): http://en.wikipedia.org/wiki/Quadtree

Всего записей: 1738 | Зарегистр. 02-09-2004 | Отправлено: 17:35 14-01-2009
085



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот, ещё проблема. Сделал  asp.net+jquery страницу, запускаю из меню ДЕБАГ, ява скрипт вообще не прёт. В коде  думаю ошибок нет. Может нужно проверять на полноценном IIS ? Заранее спасибо

Всего записей: 79 | Зарегистр. 17-09-2008 | Отправлено: 20:21 15-01-2009
EZH



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
085
Что такое

Цитата:
ява скрипт вообще не прёт

?
 
Точки останова в дебаге не работают, или не видишь как скрипт исполняется?
Дебаг js работает и на Developer-ском веб-сервере на файловой системе.

Всего записей: 1738 | Зарегистр. 02-09-2004 | Отправлено: 00:54 16-01-2009
085



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EZH  когда запускаю страницу я не вижу как выполняется яваскрипт

Всего записей: 79 | Зарегистр. 17-09-2008 | Отправлено: 10:18 16-01-2009
AlexandrVS

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EZH Спасибо я понял что это не так быстро будет как я думал Структура базы чужая , но возьму на вооружение для своей.

Всего записей: 50 | Зарегистр. 04-05-2006 | Отправлено: 13:45 16-01-2009
EZH



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
085
Ну так а точки останова работают? Скрипт точно правильно грузится? Я имею ввиду путь там верный? Повставляй везде вызовы alert-ов, чтобы понять где что вызывается или наоборот - нет.

Всего записей: 1738 | Зарегистр. 02-09-2004 | Отправлено: 15:17 16-01-2009 | Исправлено: EZH, 15:28 16-01-2009
085



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EZH - буду думать что не так. Пути то верные, тем более их в студии правильно поставить вообще просто.  

Всего записей: 79 | Зарегистр. 17-09-2008 | Отправлено: 18:09 16-01-2009
EZH



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
085
Ну мож с jquery селекторами где накосячил...

Всего записей: 1738 | Зарегистр. 02-09-2004 | Отправлено: 23:30 16-01-2009
085



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как в WPF к датагриду подключить  базу данных? Так ?-  dataGrid1.iItemsSource
что то насчёт всяких красивостей WPF информации море нашёл, а про это как то неочень. Заранее спасибо

Всего записей: 79 | Зарегистр. 17-09-2008 | Отправлено: 18:57 20-01-2009
SpinnE



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Господа, есть вопрос по WPF. Как отобразить в нем произвольный datatable, количество колонок в котором неизвестно ? DataGridView в WPF не наблюдается, а прописывать в Xaml через ListView надо точно знать колонки...
Или использовать DataGridView из NET 2.0 ?
 

Код:
 
<Grid>
        <ListView Name="listViewMain">
            <ListView.View>
                <GridView>
                    <GridViewColumn Header="Имя" Width="100" DisplayMemberBinding="{Binding FirstName}"/>
                    <GridViewColumn Header="Фамилия" Width="100" DisplayMemberBinding="{Binding LastName}"/>
                </GridView>
            </ListView.View>
        </ListView>
    </Grid>
 

 
Или програмно добавлить колонки и итемы в ListView ?
 

Всего записей: 241 | Зарегистр. 02-08-2004 | Отправлено: 19:02 29-01-2009 | Исправлено: SpinnE, 19:24 29-01-2009
EZH



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
SpinnE
Существуют свободные и бесплатные WPF Data-гриды.
http://windowsclient.net/wpf/wpf35/wpf-35sp1-toolkit-datagrid-feature-walkthrough.aspx
http://xceed.com/Grid_WPF_Intro.html
 
У DevExpress есть бесплатный Silverlight грид
http://www.devexpress.com/Products/NET/Controls/Silverlight/Grid/

Всего записей: 1738 | Зарегистр. 02-09-2004 | Отправлено: 01:44 30-01-2009
wgnom

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Для совместимости с предыдущими проектами понадобилось вот что... Головная программа посылает сообщения дочерним приложениям, находя их главные окна по имени класса окна. Чтобы задать определенное имя класса, ранее в MFC переопределялась функция LoadFrame, где писалось что-то типа:
 
WNDCLASS wndcls;
if (!::GetClassInfo(AfxGetInstanceHandle(), lpszClass, &wndcls)) return(FALSE);
///////////////////////////////
lpszClass="CMyoMainFrame";
///////////////////////////////
if (!::GetClassInfo(AfxGetInstanceHandle(), lpszClass, &wndcls))
{
   wndcls.lpszClassName = lpszClass;
   if (!AfxRegisterClass(&wndcls))
      AfxThrowResourceException();
}  
 
При написании новой версии прилоджения под C#.Net выяснилось, что класс окна именуется например так: "WindowsForms10.Window.8.app.0.3b95145", причем последняя сигнатура - переменная. Соответственно нужно аналогичным образом переименовать класс в что-то постоянное.
 
Подскажите, плиз, можно ли это сделать, и как? Спасибо.

Всего записей: 4 | Зарегистр. 20-01-2007 | Отправлено: 02:04 30-01-2009
SpinnE



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EZH, спасибо, а все-таки средствавми самого WPF никак ?

Всего записей: 241 | Зарегистр. 02-08-2004 | Отправлено: 11:50 30-01-2009
recvezitor

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мне необходимо кучу файлов превратить в картинку. Если бы они были маленькие, то проблем бы не было, я бы их все считал в память и потом обычным образом записал в картинку. Но мне нужно постепенно добавлять информацию, т.е. надо использовать потоки и все время сливать считанную информацию.
Как дорисовать несколько картинок, чтобы каждая новая картинка добавлялась "справа". Все нужно "дорисовывать" в потоке. Сейчас делаю так:
 

Код:
 
private void toolStripMenuItemSaveAllToPictures_Click(object sender, EventArgs e)
        {
            FileStream stream = new FileStream(@"C:\test.jpg", FileMode.Create, FileAccess.ReadWrite);
            foreach (FileDescriber fd in fileDescribers)
            {
                if (fd.Name != "All")
                {
                    //stream.Position = stream.Length;
                    LoadSingleDataFileToMemory(fd);
                    ParseToStream(stream, fd);
//                    stream.Flush();                   //хз надо или не надо?
                }
            }
            stream.Close();
        }
 
 
private void ParseToStream(Stream inputStream, FileDescriber describer)
        {
            if (describer != null)
            {
                using (Bitmap bmp = new Bitmap(describer.FrameSize, describer.ImpulseCount, PixelFormat.Format24bppRgb))
                {
                    Rectangle rect = new Rectangle(Point.Empty, bmp.Size);
 
                    BitmapData bmpData = bmp.LockBits(rect, ImageLockMode.ReadWrite, bmp.PixelFormat);
                    try
                    {
                        IntPtr ptr = bmpData.Scan0;
                        int bytes = bmpData.Stride * bmpData.Height;
                        byte[] rgbValues = new byte[bytes];
                        int offset = 0;
                        Color selectedColor = Color.Black;
                        for (int y = 0; y < bmp.Height; y++)
                        {
                            offset = bmpData.Stride * y;
                            for (int x = 0; x < bmp.Width; x++)
                            {
                                selectedColor = colorBar1.ColorBarHandlers[colorBar1.SelectedColorBar].GetColor(currentData[y, x]);
                                rgbValues[offset + 2] = selectedColor.R;
                                rgbValues[offset + 1] = selectedColor.G;
                                rgbValues[offset + 0] = selectedColor.B;
                                offset += 3;
                            }
                        }
                        Marshal.Copy(rgbValues, 0, ptr, bytes);
                    }
                    catch (Exception exc)
                    {
                    }
                    finally
                    {
                        bmp.UnlockBits(bmpData);
                    }
                    bmp.RotateFlip(RotateFlipType.Rotate90FlipX);
                    bmp.Save(inputStream, ImageFormat.Jpeg);
                }
            }
        }
 
 
 

Сейчас он записывает первую картиночку, а остальные игнорит. Хотя я смотрю stream.Position он сменяется при каждом вызове bmp.Save();

Всего записей: 95 | Зарегистр. 21-11-2006 | Отправлено: 12:01 30-01-2009
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru