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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

BlackVetal



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
mihas83
Могу предложить такой вариант:
создать колонку еще одну в таблице (скрытую) и в зависемости от состояния CheckBox проставлять true/false или 1/0. Ну и потом быстро пробегать по этой колонке ...

Всего записей: 1094 | Зарегистр. 13-11-2005 | Отправлено: 06:26 17-07-2009
rostomova

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

Цитата:
http://user:password@site.com/file.pdf

там логин с @

Всего записей: 2 | Зарегистр. 16-07-2009 | Отправлено: 14:24 22-07-2009
blaro



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Люди, объясните пожалуйста следующее:
Я пишу прогу, которая загружает выбранный мной файл. Все содержимое файла загружается в TextBox. Далее есть отдельное поле в котором я ввожу какое ни будь значение (число, символ, строка) и функция (которая привязана к кнопке) должна найти это значение в тексте файла. Найденное выделяется цветом. Так вот, проблема в том, что функция срабатывает только после второго нажатия на кнопку. А вот и функция

Код:
 
for (int i = 0; i < rtb1.TextLength - 1; i++)
                {
                    if (rtb1.Text.Substring(i, tbfind.TextLength).Equals(tbfind.Text))
                    {
                        rtb1.SelectionBackColor = Color.Salmon;
                        rtb1.Select(i, tbfind.TextLength);
                    }
                }
 

В чем проблема и как ее исправить?

----------
Оптимистично смотрю на мир глазами убийцы.

Всего записей: 311 | Зарегистр. 29-01-2006 | Отправлено: 19:59 27-07-2009 | Исправлено: blaro, 20:02 27-07-2009
Lihonosov

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

Код:
 
        private void button1_Click(object sender, EventArgs e)
        {
            int len = this.richTextBox1.TextLength;
            int index = 0;
            int lastIndex = this.richTextBox1.Text.LastIndexOf(this.textBox2.Text);
 
            while (index <= lastIndex)
            {
                this.richTextBox1.Find(this.textBox2.Text, index, len, RichTextBoxFinds.None);
                this.richTextBox1.SelectionBackColor = Color.Yellow;
                index = this.richTextBox1.Text.IndexOf(this.textBox2.Text, index) + 1;
            }
        }

RichTextBox Find the text and Highlight all text

Всего записей: 537 | Зарегистр. 05-07-2007 | Отправлено: 22:09 27-07-2009
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Народ,подсобите с такой проблемой , мож поиск плохо юзал,тем более знаю что когдато ето делал через Rows, задача такая надо шарпный аналог билдеровкого получения и установки значения текущего поля таблицы -  
tQuery1->FieldByName("Field1")->AsInteger=1

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 09:23 28-07-2009
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
да, и еще моно примерчик реализации мастер-датала, в билдере все просто
написал два запроса
select *** from master_table
select *** from detal_table where detal_table.MasterID=:MasterID
и для детал таблицы прописал свойство датасоурсе, и все - кидай два грида и пулучи че хотел, а как ето реализовать на шарпе.
И где я могу подкоректировать инсерт/апдейт/делете скл?

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 14:18 28-07-2009
Omicron_Persey_8



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вы какой механизм доступа к данным предпочитаете? В .NET их хренова куча: ADO.NET, LINQ to SQL, Entity Framework?

Всего записей: 282 | Зарегистр. 02-09-2007 | Отправлено: 17:32 28-07-2009
BlackVetal



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
MagistrAnatol
В компонентах есть sqlAdapter - подключается к Table.  Вот в адаптере можно настраивать операции работы с данными

Всего записей: 1094 | Зарегистр. 13-11-2005 | Отправлено: 06:31 29-07-2009
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
BlackVetal
ага,в компакт фреймворке вагон компонентов , нету там sqlAdapter, а писать ручками,при условии что он подключается к компакт фреймворку не прикольно.
ну а по поводу реализации tQuery1->FieldByName("Field1")->AsInteger=1 есть соображения?

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 09:18 29-07-2009
Omicron_Persey_8



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

Цитата:
tQuery1->FieldByName("Field1")->AsInteger=1

все опять же упирается в технологию доступа к данным. В частности для ADO.NET будет так:
Код:
ds.Tables["Table1"].Rows[номерСтроки].ItemArray["Field1"]

Это в том случае, если доступ к данным полностью программный. Но, в VS есть мастер подключения к БД, который создаст типизированный DataSet, в котором для каждой таблицы, поля и т. д. будет создано свойство:

Код:
ds.Table1.Rows[15].Field1

Плюс ко всему, во втором случае все поля имеют заданный тип, а не object, как в первом случае.
 
Добавлено:

Цитата:
нету там sqlAdapter

Там есть SQLDataAdapter, OleDbDataAdapter и еще много кое-чего...
 
Добавлено:
Подскажите и мне кто-нибудь. Через COM цепляюсь к Excel'ю:

Код:
string sAppProgID = "Excel.Application";
            Type tExcelObj = Type.GetTypeFromProgID(sAppProgID);
            object excel = Activator.CreateInstance(tExcelObj);

Занимаюсь вивисекцией COM и .NET первый раз, поэтому расскажите, как корректно все это дело грохнуть. Пока делаю так:

Код:
Marshal.ReleaseComObject(this.excel);
            this.excel = null;
            // Явно грохаем процесс  
            GC.Collect();
            GC.GetTotalMemory(true);

 
Но меня смущает, что процесс excel'я висит до завершения моей проги. Как можно это победить?

Всего записей: 282 | Зарегистр. 02-09-2007 | Отправлено: 13:56 29-07-2009 | Исправлено: Omicron_Persey_8, 14:30 29-07-2009
avkorets



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ребят печатаю документ

Код:
 
...
            int charactersOnPage = 0;
            int linesPerPage = 0;
            e.Graphics.MeasureString(line2print, printfont,
                size, StringFormat.GenericTypographic,
                out charactersOnPage, out linesPerPage);
            e.Graphics.DrawString(line2print, printfont, Brushes.Black,
                e.MarginBounds.Left - 90 ,e.MarginBounds.Top-90, StringFormat.GenericTypographic);
            line2print = line2print.Substring(charactersOnPage);
            e.HasMorePages = (line2print.Length > 0);
 

я сдвинул начальную точку влево и вверх, теперь у меня часть текста переноситься на вторую страницу, где подкрутить, чтобы не переносился текст?
+при печати из cmd print.exe какой шрифт используется?

Всего записей: 81 | Зарегистр. 09-09-2008 | Отправлено: 14:59 29-07-2009
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Omicron_Persey_8
я использовал мастер подключения.
есть задача в которой одно поле бд не редаткируется пользователем напрямую  
к примеру я удаляю запись из таблицы не физически а есть поле IS_DELETED которое равно 0/1 ну и соответсвующий селект, вот мне и надо
реализовать не .RemoveCurent а
что-то типа етого
 mdDS.Tables["OPERACII"].Rows[(int)oPERACIIBindingSource.Current]["IS_DELTED"]=0;
но выдает ошибку
пока что не разобрался из синтаксисом,мать чет не так написал, а что именно??

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 16:46 29-07-2009
BlackVetal



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
MagistrAnatol
Давно я писал на стандартных компонентах - поэтому точно не скажу. Но наскока я помню создавал отдельный проект - Dataset. В нем уже реализовывал подключение,  таблицы и SqlDataAdapter. В форме подключался к DataSet и вызывал в зависемости от ситуации нужную команду (Select, Insert и т.д.). И если не ошибаюс там можно было создавать несколько команд для каждого типа действия с данными. Также там есть возможность в качестве команды использовать хранимые процедуры. Omicron_Persey_8
К сожелению я в свое время тоже не нашел другого решения ... хотя в той ситуации (подключался к 1С v8.0) это было не столь актуально. Но yf будущее хотелось бы узнать  - может есть какой-нить еще способ ...

Всего записей: 1094 | Зарегистр. 13-11-2005 | Отправлено: 06:25 30-07-2009
Omicron_Persey_8



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

Цитата:
 mdDS.Tables["OPERACII"].Rows[(int)oPERACIIBindingSource.Current]["IS_DELTED"]=0;

Что за ошибку пишет? На первый взгляд, должно на (int)oPERACIIBindingSource.Current падать, так как там содержится сама запись, а не ее номер.

Всего записей: 282 | Зарегистр. 02-09-2007 | Отправлено: 09:24 30-07-2009
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Omicron_Persey_8
да ругается именно на опредиление позиции в таблице.
Я уже пробывал так
int CurRec = oPERACIIDataGrid.CurrentRowIndex;
mdDS.OPERACII.Rows[CurRec].Field<int>("IS_DELETED")=0;
но пишет шо  
Ошибка    1    Левая часть выражения присваивания должна быть переменной, свойством или индексатором
 

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 10:51 30-07-2009
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
блин,ребята, как я вам сочуствую, писать на шарпе приложение с базой по сравнению
с борландовскими продуктами такое извращение, сикоко ненужных телодвижений надо делать шо ето капец.
По моему вопросу для новой записи наконец-то нашол вроде работающий код
           DataRow newRow = mdDS.Tables["OPERACII"].NewRow();
            newRow["DATA"] = DateTime.Now;
            newRow["IS_DOLG"] = 0;
            newRow["OPER_MOD_DATE_TIME"] = DateTime.Now;
            newRow["IS_DELETED"] = 0;
            newRow["IS_KPK"] = 1;
            mdDS.Tables["OPERACII"].Rows.Add(newRow);
             
//            oPERACIIBindingSource.AddNew();
            Zemly.frmOper operaciiEditViewDialog = Zemly.frmOper.Instance(this.oPERACIIBindingSource);
 
            if (operaciiEditViewDialog.ShowDialog() == DialogResult.OK)
но ето вариант для новой записи, а теперь как
все ето прикрутить для редактирования -
DataRow newRow = mdDS.Tables["OPERACII"].NewRow(); ???????

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 15:10 30-07-2009
Omicron_Persey_8



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MagistrAnatol
Сочувствия нам не надо. Борландовские продукты рулят из-за  того, что для вас написано большое количество компонентов.

Цитата:
но ето вариант для новой записи, а теперь как  
все ето прикрутить для редактирования -

Как почти везде в .NET очень просто:

Код:
mdDS.Tables["OPERACII"].Rows[14]["Field"] = "Чего-то там";

А зачем получать индекс строки из DataGrid'а?
 
 
Добавлено:
А ты DataSet мастером создавал?

Всего записей: 282 | Зарегистр. 02-09-2007 | Отправлено: 20:46 30-07-2009
BlackVetal



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
MagistrAnatol
Omicron_Persey_8
Никакого извращения нет - я давно использую библиотеку компонент C1 (ComponentOne) - В ней очень много полезных вещей реализовано иммено для работы с данными. Код сокращается очень сильно (по сравнению при работе с стандартными компонентами). Я хочу сказать - если поискать для себе набор компонент, который будет удовлетворять потребности, то еще не знаю у кого компоненты будут удобнее в Борланде или на C#. А ваабще это философский вопрос - где удобнее или быстрее или практичние.

Всего записей: 1094 | Зарегистр. 13-11-2005 | Отправлено: 06:45 31-07-2009
Omicron_Persey_8



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BlackVetal
Ну, подобного добра навалом: и Exeed, и DevExpress, и 10Tec, и Aspose... А, Telerik еще забыл упомянуть. Все вещи красивые, мощные и функциональные. Вот только дороговато, меньше 200$ за лицензию не встретишь.

Всего записей: 282 | Зарегистр. 02-09-2007 | Отправлено: 08:14 31-07-2009
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Немного флуда - но я не говорю о шарпе под винду, а долблюсь с компакт фреймворком
а там даже в стандартных компонентах такое ограничение по функционалу шо жуть как
ваще народ пишет под кпк.
Omicron_Persey_8
mdDS.Tables["OPERACII"].Rows[14]["Field"] = "Чего-то там"; ето ручное указание
номера строки а мне надо определить на какой строке находиться курсор и опять же в том самом борланде мне не надо беспокоиться где курсор чтобы отредактировать ячейку
таблицы - если я двигаюсь по гриду курсор таблицы автоматом идет за движение по гриду.

Цитата:
А ты DataSet мастером создавал?
да
 
 
Добавлено:
да и по ходу еще и такой вопрос - я никак не могу въехать в логику.
вот код - я добавляю новую запись а потом сразу же ее редактирую
       private void menuItem2_Click(object sender, EventArgs e)
        {
            DataRow newRow = mdDS.Tables["OPERACII"].NewRow();
            newRow["DATA"] = DateTime.Now;
            newRow["IS_DOLG"] = 0;
            newRow["OPER_MOD_DATE_TIME"] = DateTime.Now;
            newRow["IS_DELETED"] = 0;
            newRow["IS_KPK"] = 1;
            mdDS.Tables["OPERACII"].Rows.Add(newRow);
            Zemly.frmOper operaciiEditViewDialog = Zemly.frmOper.Instance(this.oPERACIIBindingSource);
            if (operaciiEditViewDialog.ShowDialog() == DialogResult.OK)
            {
                oPERACIIBindingSource.EndEdit();
                oPERACIITableAdapter.Update(mdDS);
                this.oPERACII_DETALTableAdapter.Fill(this.mdDS.OPERACII_DETAL);
                this.oPERACII_DETALTableAdapter.FillBy(this.mdDS.OPERACII_DETAL);
            }
            else
            {
                oPERACIIBindingSource.CancelEdit();
            }
 
         
        }
 
        private void menuItem3_Click(object sender, EventArgs e)
        {
            mdDS.Tables["OPERACII"].Rows[oPERACIIBindingSource.Position]["IS_DELETED"] = 1;
            oPERACIIBindingSource.EndEdit();
            oPERACIITableAdapter.Update(mdDS);
            this.oPERACII_DETALTableAdapter.Fill(this.mdDS.OPERACII_DETAL);
            this.oPERACII_DETALTableAdapter.FillBy(this.mdDS.OPERACII_DETAL);
 
        }
 
и получаю ошибку
$exception    {"Concurrency violation: the UpdateCommand affected 0 of the expected 1 records."}    System.Exception {System.Data.DBConcurrencyException}
что я не так делаю и почему при добавлении новой строки у меня не обновляются данные в гриде.Точнее обновляются токо те шо выдает метод Fill - селект из одной таблицы с кучей колонок для привязки со справочниками.Неприкольно смотреть на грид
 с числами  
FillBy -  я делал селект из нескольких таблиц, использовать токо его не могу так как не достаточно хорошо знаю шапр шоб самому написать методы инсерт/апдейт/делете таблицы да и еще и постоянно путаюсь с борландом - там апдейт ето редактирование таблицы а не запись Пост в борланде
По борландовской логике если откинуть транзакции я должен сделать
Table1->Append();
.......
Table1->Post(); если правильно написан запрос для селекта и рефреша то ваще больше ничего делать не надо, ну иногда после поста приходиться писать
Table1->Refresh(); or Table1->CloseOpen(false);
ни у редактируй сразу же - никаких орграничений доступа- единственное что приходит в голову - ето то что я тестирую приложение через емулятор а в нем записи не записываются физически в таблицу, не знаю почему, чет мелкософт недомудрил.
метод Fill - ето открытие таблицы?
 

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 09:27 31-07-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