Получение данных с программно созданных элементов - C# (213110)
Формулировка задачи:
Программно создаю DataGridView И загружаю в него данные из базы данных.
Вопрос: Как теперь получить с него значения полей чтоб удалить или изменить записи в базе?
Предполагаю что удалятся будет примерно так
А если программно то он не меняется. В чем может быть дело?
int p = Convert.ToInt32(this.myDataGridView.CurrentRow.Cells[0].Value); del("DELETE FROM C_CLIENTS WHERE ID=", p);
public void tabel(string a) { TabControl tp = new TabControl(); tp.Width = 500; tp.Height = 250; tp.Left = 0; tp.Top = 50; //tp.Dock = DockStyle.Fill; this.Controls.Add(tp); TabPage t = new TabPage(a); DataGridView d = new DataGridView(); Panel p = new Panel(); p.Dock = DockStyle.Fill; p.Parent = t; d.Parent = p; d.Dock = DockStyle.Fill; d.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; d.AllowUserToAddRows = false; d.AllowUserToDeleteRows = false; d.ReadOnly = true; d.AllowUserToOrderColumns = true; d.SelectionMode = DataGridViewSelectionMode.FullRowSelect; StatusStrip s = new StatusStrip(); s.Parent = t; ToolStrip to = new ToolStrip(); to.Parent = t; tp.Appearance = TabAppearance.FlatButtons; tp.Multiline = false; ToolStripTextBox te = new ToolStripTextBox(); to.Items.Add(te); tp.TabPages.Add(t); d.DataSource = sel("SELECT * FROM C_CLIENTS WHERE NAME LIKE '%" + NameSel.Text + "%'"); ; }
И еще если выкладывать на форму tabControl то вкладки программно добавляются без проблем
tabControl1.TabPages.Add(t);
Решение задачи: «Получение данных с программно созданных элементов»
textual
Листинг программы
FbCommand InsertSQL = new FbCommand(a + b, fb); if (fb.State == ConnectionState.Closed) //если соединение закрыто - откроем его; Перечисление ConnectionState содержит состояния соединения (подключено/отключено) fb.Open(); FbTransaction fbt = fb.BeginTransaction(); //стартуем транзакцию; стартовать транзакцию можно только для открытой базы (т.е. мутод Open() уже был вызван ранее, иначе ошибка) InsertSQL.Transaction = fbt; //необходимо проинициализить транзакцию для объекта InsertSQL try { int res = InsertSQL.ExecuteNonQuery(); //для запросов, не возвращающих набор данных (insert, update, delete) надо вызывать этот метод MessageBox.Show("SUCCESS: " + res.ToString()); fbt.Commit(); //если вставка прошла успешно - комитим транзакцию } catch (Exception ex) { MessageBox.Show(ex.Message); } InsertSQL.Dispose(); //в документации написано, что ОЧЕНЬ рекомендуется убивать объекты этого типа, если они больше не нужны fb.Close(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д