Получение данных с программно созданных элементов - 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();
}