Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WinForms, .Net Framework Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3      [все]
 Нужна помощь экспертов в C#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2751
Создал кнопку, к этой кнопки привязал код:

private void button5_Click(object sender, EventArgs e) // test добавление чекбоксов по статусами
        {
            string status = pSTATUSDataGridViewTextBoxColumn.ToString();

            foreach (int ttt in status)
            {

            int active = 1;
            int t=System.Convert.ToInt32(ttt); // конвертация из текста в числовой
            
              if ( t < active)
                     { pSTATUSDataGridViewTextBoxColumn.DataGridView.CurrentCell.Value = true;  
                         }  else  {
                                    pSTATUSDataGridViewTextBoxColumn.DataGridView.CurrentCell.Value = false ;  
                                  }
        }
        }


Логика в том, чтобы после нажатия кнопки прога пробежала по строка столбца "Статус" см рисунок
и выполнить условия.

Понимаю, что намудрил тут, но лузеров в С# не судят)))

К сообщению приложен файл. Размер - 41Kb
30 май 18, 08:03    [21452380]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2751
pSTATUSDataGridViewTextBoxColumn.DataGridView.CurrentCell.Value = true; ---- добавляет и убирает галочку с чекбокса
30 май 18, 08:05    [21452383]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 26531
Гы, хорошо хоть не Актив\Пассив

Что является BindingSource-ом для GridView? DataTable, List?
30 май 18, 08:08    [21452386]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2751
skyANA
Гы, хорошо хоть не Актив\Пассив

Что является BindingSource-ом для GridView? DataTable, List?


источником данных из табл oracle
дело в то что там в двух столбца есть 0, 1, null, -1 значения
их надо заменить на чекбокс это для статуса
и потом на значений из комбокс для автора\потребителя
30 май 18, 09:33    [21452573]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2751
Есть datagridview в него черз форму записываются данные, которые потом сохраняются в xml файл и соответственно из него заполняется снова datagridview после открытия программы.

Вопрос в чем, в том, что у меня имеется инфа а паролях и открытый пароль попадает в xml файл
Через что и как можно сделать так, чтобы в файл попадал шифрованный пароль
И потом расшифровывался в программе ....???
3 июл 18, 09:50    [21538469]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
Lessyp
Member

Откуда:
Сообщений: 122
SAS2014
Через что и как можно сделать так, чтобы в файл попадал шифрованный пароль
И потом расшифровывался в программе ....???

хранить пароль в открытом виде вообще нельзя. Хэш передавай
3 июл 18, 09:55    [21538479]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
SAS2014,
У тебя же бд была?
Не пиши в файл и пароли не будут открыты.
3 июл 18, 10:58    [21538611]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2751
вопрос с паролями решен
4 июл 18, 09:14    [21541320]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2751
Вот так я получаю данные из таблицы базы данных ORACLE

using (OracleConnection conn = new OracleConnection(String.Format("data Source={0};Persist Security Info=True;User ID={1}; password={2}", names, login, pwd))) //строка подключения
                using (OracleCommand cmd = new OracleCommand("Select id, name, status, plicense from ttt.test where status not like '-1' and plicense in(0,1)", conn)) //запрос к таблице
                {
                    conn.Open();
                    using (OracleDataReader reader = cmd.ExecuteReader())
                    {
                        DataTable dataTable = new DataTable();
                        dataTable.Load(reader);
                        dataGridView2.DataSource = dataTable;
                    }

                    
                    conn.Close();
                }


А как обновить данные уже в таблице oracle на основании данных в datagridview (столбцы id, name, status, plicense from ttt.test)?
PS: В datagridview при заполнение создаю еще два столбца
6 июл 18, 08:00    [21547984]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2751
забыл написать, данный код привязан на кнопку
6 июл 18, 09:33    [21548174]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
SAS2014
А как обновить данные
hello world ищем самостоятельно.
https://www.google.ru/search?newwindow=1&ei=YRM_W9TDE4HcwALe25WADg&q=datagridview c# edit mode&oq=datagridview c# edit&gs_l=mobile-gws-wiz-serp.1.2.0i203l3j0l2.52492.59228..66496...0....235.1653.0j9j1......0....1.........0i71j35i39j0i22i30j0i67.i0sKW8OWP0U
6 июл 18, 10:03    [21548309]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 26531
Petro123
SAS2014
А как обновить данные
hello world ищем самостоятельно.
https://www.google.ru/search?newwindow=1&ei=YRM_W9TDE4HcwALe25WADg&q=datagridview c# edit mode&oq=datagridview c# edit&gs_l=mobile-gws-wiz-serp.1.2.0i203l3j0l2.52492.59228..66496...0....235.1653.0j9j1......0....1.........0i71j35i39j0i22i30j0i67.i0sKW8OWP0U

Гы, бот не может даже правильный поисковый запрос сотавить
6 июл 18, 14:27    [21549634]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 26531
SAS2014,

how to update database table from datagridview in c#
6 июл 18, 14:28    [21549637]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
Cat2
Member

Откуда: Petroskoi, Karjala
Сообщений: 145629
skyANA
SAS2014,

how to update database table from datagridview in c#


Ради любопытства прошелся по некоторым ссылкам.
Люди, не читайте их - это безмозглые индусы писали
7 июл 18, 12:52    [21551839]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 26531
Cat2
skyANA
SAS2014,

how to update database table from datagridview in c#


Ради любопытства прошелся по некоторым ссылкам.
Люди, не читайте их - это безмозглые индусы писали

Критикуешь - предлагай

И что ты там читал, когда видео в начале?



Озвучено девушкой, от которой не пахнет индусами
7 июл 18, 13:14    [21551880]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 26531
А если хочется почитать, то документацию: Retrieving and Updating with Oracle Data Provider for .NET
7 июл 18, 13:18    [21551884]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20437
skyANA
когда видео в начале?
Cat2
прошелся по некоторым ссылкам.
Коллеги, не забывайте, что выдачи поисковика у всех разные. Вдруг Cat2 до этого искал индусское.... эээ.... кино )
7 июл 18, 15:08    [21552048]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
Cat2
Member

Откуда: Petroskoi, Karjala
Сообщений: 145629
skyANA
Cat2
пропущено...


Ради любопытства прошелся по некоторым ссылкам.
Люди, не читайте их - это безмозглые индусы писали

Критикуешь - предлагай

И что ты там читал, когда видео в начале?



Озвучено девушкой, от которой не пахнет индусами

У меня видео в первых строках не выдало. Я не смотрю всяких видеоуроков.
От ее кода не пахнет, а смердит. Это же надо было додуматься, проверять удаление через перехват кода нажатой клавиши!

Примерно так. Предполагается, что SqlDataAdapter уже создан дизайнере.
Для простоты оставлена только одна таблица и убрано много другого, не важного для примера.
Что у нее правильно сделано - кнопка "Сохранить"


private void FormMain_Load(object sender, EventArgs e)
        {
            Reload();
        }

private void Reload()
        {
            this.ds.Role.Clear();
            this.roleTableAdapter.Fill(this.ds.Role);
            ds.Role.RoleRowChanged += Role_RoleRowChanged;
            ds.Role.RoleRowDeleted += Role_RoleRowChanged; //если нет особой нужды различать изменение и удаление
			//если есть, то можно назначить разные функции
		}

private void Role_RoleRowChanged(object sender, Ds.RoleRowChangeEvent e)
        {
		//if (e.Action == DataRowAction.Delete)  - Вот так нужно проверять, что идет удаление
               this.roleTableAdapter.Update(this.ds.Role);
      }
		
// Обновить данные - это бывает полезно
private void buttonRefresh_Click(object sender, EventArgs e)
        {
            int itemId = (int)(roleBindingSource.Current as DataRowView)["RoleId"];
            ds.Role.RoleRowChanged -= Role_RoleRowChanged;
            ds.Role.RoleRowDeleted -= Role_RoleRowChanged;
			Reload();
            roleBindingSource.Position = itemBindingSource.Find("RoleId", itemId);
          
        }
7 июл 18, 20:40    [21552522]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
Cat2
Member

Откуда: Petroskoi, Karjala
Сообщений: 145629
skyANA
А если хочется почитать, то документацию: Retrieving and Updating with Oracle Data Provider for .NET

Это не документация, а опыт работы малограмотного студента
7 июл 18, 20:56    [21552541]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
Cat2
Member

Откуда: Petroskoi, Karjala
Сообщений: 145629
Cat2
skyANA
А если хочется почитать, то документацию: Retrieving and Updating with Oracle Data Provider for .NET

Это не документация, а опыт работы малограмотного студента

Немного поостыл. Нормально, но никак не связано с работой через DataGridView
7 июл 18, 21:53    [21552633]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2751
Первый filter выполняет фильтрацию данных в datagridview по трем возможным условиям
Т.е. по имени и id, например выбрал всех чьи имена начинается на Прох и id pro как то так, суть не в этом с эти все нормально
Далее на форме есть комбоксы которые работают так же как выше описано, но только уже с другими данными
первые скажем условия а = [PUSER_ID] и [PUSER_NAME] в паре работают
вторые скажем условия b = [PSTATUS] и [PLICENSE_LEVEL] в паре работают

Проблема в объединение a и b
Если я пишу так
"[PUSER_ID] LIKE'" + textBox3.Text + "%' AND " + "[PUSER_NAME] LIKE'" + textBox2.Text + "%'" + “ AND ” + query1 + “ AND ” + query2;

То получается билиберда при фильтрации
ДАННЫе
Таблица
PUSER_ID PUSER_NAME PSTATUS PLICENSE_LEVEL
ttt ттт 0 1
sss ссс 1 0

Фильтрация

PUSER_ID – ttt
PUSER_NAME – ттт
PSTATUS – 0
PLICENSE_LEVEL – 1
Результат
:
PUSER_ID PUSER_NAME PSTATUS PLICENSE_LEVEL
ttt ттт 0 1



КОД [PUSER_ID] и [PUSER_NAME];
bs.Filter = "[PUSER_ID] LIKE'" + textBox3.Text + "%' AND " + "[PUSER_NAME] LIKE'" + textBox2.Text + "%'"


КОд [PSTATUS] и [PLICENSE_LEVEL]
string query1 = "[PLICENSE_LEVEL] = " + (comboBox1.Text == "Потребитель" ? "1" : "0");
                string query2 = "[PSTATUS] = " + (comboBox2.Text == "Активный" ? "0" : "1");

                bool A = (comboBox1.Text != "");
                bool B = (comboBox2.Text != "");

                string QUERY = "";

                if (A && !B) QUERY = query1;
                if (!A && B) QUERY = query2;
                if (A && B) QUERY = query1 + " AND " + query2;

  bs.Filter = QUERY;
17 июл 18, 09:14    [21576714]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20437
SAS2014
То получается билиберда при фильтрации
...
ttt ттт 0 1
Если абстрагироваться от ужасного кода, то в чем проблема - я не понял, отобралась строка, в которой соблюдены указанные условия

ЗЫ: и-таки на форуме есть средства для оформления таблиц
17 июл 18, 09:29    [21576744]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2751
Есть файл C:\Program Files (x86)\Oracle\Inventory\ContentsXML\inventory.xml

в нем много чего написано, но мне нужна лишь строка, например c:\oracle\baanplus, которая идет после Log=" и заканчивается "

вообщем надо в переменную запихнуть каталог где лежит tnsnames.ora
19 июл 18, 01:37    [21583142]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20437
Я так понял, это новый вопрос, на старый (про условия в sql-запросе) мы забили.

Для поиска в xml гугли XPath
19 июл 18, 04:48    [21583183]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
SAS2014
вообщем надо в переменную запихнуть каталог где лежит tnsnames.ora
глянь переменные среды операционки. Если есть ORA_HOME то та рядышком и лежит.
Ещё реестре можно.
19 июл 18, 07:32    [21583272]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2751
Petro123
SAS2014
вообщем надо в переменную запихнуть каталог где лежит tnsnames.ora
глянь переменные среды операционки. Если есть ORA_HOME то та рядышком и лежит.
Ещё реестре можно.


Разобрался, пришлось помучится но все гуд
20 июл 18, 09:40    [21587320]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2751
Подскажите как можно сделать такую вещь

У меня в приложении есть датагридвью, он заполняется из БД данными, теперь надо, чтобы например при закрытие программы или чтобы кнопка которая обновляет данные активировалась только тогда даже хотябы одна ячейка была изменена.
А при закрытие если данные не обновились, но в датагридевью изменились, выдавало сообщение
"Если закроете программу то данные будут потеряны" типа того ))

пример начальные данные
фио статус
петров в.в автор
иванов с.в потребитель


пример измененные данные
фио статус
петров в.в потребитель
иванов с.в потребитель

и тут при закрытие если данные не обновились в БД, должно появится "Если закроете программу то данные будут потеряны"
20 июл 18, 09:49    [21587346]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
SAS2014,
Тебе 2 раза говорили, создавай тему на каждый вопрос и с понятным названием.
20 июл 18, 10:00    [21587398]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
Roman Mejtes
Member

Откуда: г. Пермь
Сообщений: 3404
у датагрида есть событие CellChanged или EditApply, или как то так, но в таком же духе. Если это событие возбудилось, поменяйте флаг, который определяет изменилось содержимое или нет. Если хоть 1 раз изменилось.
После сохранения этот флаг сбрасывать
20 июл 18, 10:19    [21587499]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2751
Пытаюсь сравнить столбцы в датагридах, но ничего не получается может кто то сталкивался с такой задачей и подскажет в чем ошибка
логика просто есть datagridview3 в который загружается первичные данные
и есть основной datagridview2 в котором будет происходит изменение ячеек в столбцах
и при нажатие кнопки происходит сравнение значений и прграмма должна сказать есть изменение или нет

private void button10_Click(object sender, EventArgs e)
        {
            Boolean isEqual = true;
            for (int i = 0; i < dataGridView2.Rows.Count; i++)
                
            {

                if (!dataGridView2.Rows[i].Cells[2].Value.ToString().Equals(dataGridView3.Rows[i].Cells[2].Value.ToString())) 
                {
                    isEqual = false;
                    break;
                }
            }
            MessageBox.Show((isEqual) ? "Равно" : "Неравно");
        }
25 июл 18, 09:28    [21600215]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20437
SAS2014
ничего не получается ... происходит сравнение... прграмма должна сказать есть изменение или нет
а что на самом деле говорит? "Не получилось"?
25 июл 18, 09:41    [21600261]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2751
Shocker.Pro
SAS2014
ничего не получается ... происходит сравнение... прграмма должна сказать
а что на самом деле говорит? "Не получилось"?


пишет что неразные
25 июл 18, 09:42    [21600266]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2751
мне надо знать что они разные или нет, а что там изменилось какая ячейка по барабану
25 июл 18, 09:43    [21600269]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20437
SAS2014
пишет что неразные
странно, ведь заложено только "Равно" и "Неравно"

А отлаживать по шагам не пробовал?
25 июл 18, 09:44    [21600270]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2751
Shocker.Pro
SAS2014
пишет что неразные
странно, ведь заложено только "Равно" и "Неравно"

А отлаживать по шагам не пробовал?


пробывал сюдя посему в условии не попадает
26 июл 18, 00:58    [21603003]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20437
SAS2014
пробывал сюдя посему в условии не попадает
Ну это и так очевидно, что не попадает. Ну так и посмотри под отладкой, почему не попадает, что с чем сравнивается, в чем проблема-то?
26 июл 18, 04:15    [21603034]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2751
Данный код позволяет сохранить данные в таблицу oracle, НО ОН делает не так как надо те.е выполяет фактически перезапись всех строк в таблице теми какие в datagridview

А нужно ТОЛЬКО измененные данные записывать

conn = new OracleConnection(String.Format("data Source={0};Persist Security Info=True;User ID={1}; password={2}", names, login, pwd));
                        conn.Open();

                        int i;
                        for (i = 0; i < this.dataGridView2.Rows.Count; i++)
                        {
                            string sql = string.Format("update TEST.PPOM_USER set pstatus = {0}, plicense_level = {1} where puser_id='{2}'", dataGridView2.Rows[i].Cells[2].Value, dataGridView2.Rows[i].Cells[3].Value, dataGridView2.Rows[i].Cells[0].Value);
                            cmd = new OracleCommand(sql, conn);
                            cmd.ExecuteNonQuery();
                            
                        }
                        conn.Close();
30 июл 18, 04:52    [21613035]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20437
SAS2014
А нужно ТОЛЬКО измененные данные записывать
Ну и записывай только измененные. Вопрос-то какой?
30 июл 18, 04:57    [21613038]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2751
Shocker.Pro
SAS2014
А нужно ТОЛЬКО измененные данные записывать
Ну и записывай только измененные. Вопрос-то какой?


как это записать в код
30 июл 18, 06:37    [21613099]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20437
ЭТО - это что?
Ты же определил строки, которые изменились? Ну так и записывай только их.
30 июл 18, 06:45    [21613109]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20437
Ты свои проблемы не описываешь, как и в прошлом случае, а мы почему-то должны догадаться, то ли ты не можешь определить, какие строки изменились, то ли ты не знаешь, как написать if внутри цикла, то ли ты не можешь sql-запрос составить, то ли еще что-то. Если ты будешь тратить чуть больше времени на описание своей проблемы, ты гораздо быстрее будет получить ответы на свои вопросы. А то сначала приходится вопрос угадывать, а потом уже ответ давать
30 июл 18, 06:50    [21613113]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2751
Shocker.Pro
ЭТО - это что?
Ты же определил строки, которые изменились? Ну так и записывай только их.


я определил что были изменения .... а какие строки нет
30 июл 18, 06:53    [21613118]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2751
вопрос простой ... как сказать с# что нужно из датагрида записать в таблицу oracle только те строки которые были изменены в процессе работы программы
30 июл 18, 06:55    [21613119]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20437
SAS2014
вопрос простой .
Ну раз вопрос простой, то и ответ простой (на базе твоего кода)
                        for (i = 0; i < this.dataGridView2.Rows.Count; i++)
                        {
                            if (строка i изменилась в процессе работы программы) {
                                ...
                                cmd.ExecuteNonQuery();
                            }
                        }
30 июл 18, 07:05    [21613125]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2751
Shocker.Pro
SAS2014
вопрос простой .
Ну раз вопрос простой, то и ответ простой (на базе твоего кода)
                        for (i = 0; i < this.dataGridView2.Rows.Count; i++)
                        {
                            if (строка i изменилась в процессе работы программы) {
                                ...
                                cmd.ExecuteNonQuery();
                            }
                        }


любой так может кто чт то понимает , а ты полную картину напиши, чтобы я видел что только строки изменившийся в базу летят
30 июл 18, 08:49    [21613236]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20437
SAS2014
а ты полную картину напиши... чтобы я видел
Может за тебя еще всю твою курсовую написать?

У тебя есть код проверки строки на изменение
У тебя есть код цикла записи строк
У тебя есть псевдокод, который позволяет совместить две эти вещи.

Бери и совмещай, иначе ничему не научишься.
30 июл 18, 08:57    [21613249]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
Cat2
Member

Откуда: Petroskoi, Karjala
Сообщений: 145629
SAS2014
вопрос простой ... как сказать с# что нужно из датагрида записать в таблицу oracle только те строки которые были изменены в процессе работы программы

Вообще-то данные изменяются в DataTable, а DataGridView их только отображает.
То есть вопрос должен быть такой:
- Как записать измененные строки DataTable в таблицу oracle?
30 июл 18, 09:14    [21613296]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 5011
Cat2
Вообще-то данные изменяются в DataTable, а DataGridView их только отображает.
То есть вопрос должен быть такой:
- Как записать измененные строки DataTable в таблицу oracle?

Почему обязательно в DataTable? Источником данных может быть любой IEnumerable.
30 июл 18, 09:26    [21613315]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2751
Cat2
SAS2014
вопрос простой ... как сказать с# что нужно из датагрида записать в таблицу oracle только те строки которые были изменены в процессе работы программы

Вообще-то данные изменяются в DataTable, а DataGridView их только отображает.
То есть вопрос должен быть такой:
- Как записать измененные строки DataTable в таблицу oracle?

да
30 июл 18, 09:36    [21613341]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2751
Или вот идея еще возникла, а если сравнивать построчно таблицу из оркала в датагридом .. и если есть строки с разными даными т.е. 0 сменился на 1 в одной и з ячейки строки, то ессено делать апдейт строки в оракле
30 июл 18, 09:37    [21613346]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20437
SAS2014
Или вот идея еще возникла, а если сравнивать построчно таблицу из оркала в датагридом .. и если есть строки с разными даными т.е. 0 сменился на 1 в одной и з ячейки строки, то ессено делать апдейт строки в оракле
То есть тебя смущает, что ты отправляешь к серверу N запросов (по количеству строк) и хотел отправлять M запросов (по количеству измененных строк). Но при этом тебя не смущает, что ты собираешься таким способом отправлять N+M запросов (N на чтение и M на запись)
30 июл 18, 09:50    [21613387]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20437
Сон Веры Павловны
Почему обязательно в DataTable? Источником данных может быть любой IEnumerable.
У ТС выше по коду DataTable, если он еще не передумал
30 июл 18, 09:52    [21613390]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20437
SAS2014,

Почитай уже ну хоть что-нибудь
https://metanit.com/sharp/adonet/3.3.php
30 июл 18, 09:57    [21613415]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
schi
Member

Откуда: Москва
Сообщений: 2601
where status not like '-1' - в мемориз.
30 июл 18, 10:55    [21613632]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
Cat2
Member

Откуда: Petroskoi, Karjala
Сообщений: 145629
SAS2014
Или вот идея еще возникла, а если сравнивать построчно таблицу из оркала в датагридом

Вот по-настоящему хорошая идея в развитие этой.
Сделать скриншоты грида до и после редактирования. Открыжить изменения и сохранить данные только там, где заметишь различия
=============
У каждой строки в таблице есть статус.
30 июл 18, 12:56    [21614294]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2751
спс за инфу буду разбиратся
31 июл 18, 01:07    [21616411]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2751
решил так, создал датагрид в нем столбцы нужное кол-во и уже туда по событию изменение определенных ячеек в определенной строки формировать данные которые попадают в датагрид и из него уже обновлять строки
31 июл 18, 09:09    [21616591]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2751
а как можно избавится от двух коммитов при одном щелчке на чекбоксе на событие datagridview CurrentCellDirtyStateChanged?
private void dataGridView2_CurrentCellDirtyStateChanged(object sender, EventArgs e)

string x = this.dataGridView2[5, index_].EditedFormattedValue.ToString();
                    if (bool.Parse(x) == true)
                    {
                        this.dataGridView2[2, index_].Value = 0;
                        this.dataGridView2.CommitEdit(DataGridViewDataErrorContexts.Commit);

}
31 июл 18, 09:49    [21616707]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
Cat2
Member

Откуда: Petroskoi, Karjala
Сообщений: 145629
SAS2014
решил так, создал датагрид в нем столбцы нужное кол-во и уже туда по событию изменение определенных ячеек в определенной строки формировать данные которые попадают в датагрид и из него уже обновлять строки

Горбатого могила исправит
31 июл 18, 09:56    [21616730]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20437
Изучение ADO.NET методом тыка.... (
31 июл 18, 10:26    [21616863]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь экспертов в C#  [new]
SAS2014
Member

Откуда: Сталинград
Сообщений: 2751
Cat2
SAS2014
решил так, создал датагрид в нем столбцы нужное кол-во и уже туда по событию изменение определенных ячеек в определенной строки формировать данные которые попадают в датагрид и из него уже обновлять строки

Горбатого могила исправит


лучше так чем ни как
1 авг 18, 01:48    [21619765]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3      [все]
Все форумы / WinForms, .Net Framework Ответить