Добавление данных из TextBox в DataGridView:
Сохранение данных из DataGridView в XML файл:
Загрузка XML файла в DataGridView:
Редактирование данных в XML:
Редактирование мы представим в следующем виде – пользователь выбирает в DataGridView какую-либо строку, а в TextBox’е, NumericUpDown’е и ComboBox’е будут выводиться соответствующие этой строке данные.
Кнопка редактировать:
Удаление данных из DataGridView:
Очистка таблицы DataGridView:
C#:
private void button1_Click(object sender, EventArgs e) //Добавление данных в форму
{
if (textBox1.Text == "")
{
MessageBox.Show("Заполните все поля.", "Ошибка.");
}
else
{
int n = dataGridView1.Rows.Add();
dataGridView1.Rows[n].Cells[0].Value = textBox1.Text; // столбец Name
dataGridView1.Rows[n].Cells[1].Value = numericUpDown1.Value; // Age
dataGridView1.Rows[n].Cells[2].Value = comboBox1.Text; // Programmer
}
}
C#:
private void button4_Click(object sender, EventArgs e) //сохранение данных из формы в XML
{
try
{
DataSet ds = new DataSet(); // создаем пока что пустой кэш данных
DataTable dt = new DataTable(); // создаем пока что пустую таблицу данных
dt.TableName = "Employee"; // название таблицы
dt.Columns.Add("Name"); // название колонок
dt.Columns.Add("Age");
dt.Columns.Add("Programmer");
ds.Tables.Add(dt); //в ds создается таблица, с названием и колонками, созданными выше
foreach (DataGridViewRow r in dataGridView1.Rows) // пока в dataGridView1 есть строки
{
DataRow row = ds.Tables["Employee"].NewRow(); // создаем новую строку в таблице, занесенной в ds
row["Name"] = r.Cells[0].Value; //в столбец этой строки заносим данные из первого столбца dataGridView1
row["Age"] = r.Cells[1].Value; // то же самое со вторыми столбцами
row["Programmer"] = r.Cells[2].Value; //то же самое с третьими столбцами
ds.Tables["Employee"].Rows.Add(row); //добавление всей этой строки в таблицу ds.
}
ds.WriteXml("G:\\Data.xml");
MessageBox.Show("XML файл успешно сохранен.", "Выполнено.");
}
catch
{
MessageBox.Show("Невозможно сохранить XML файл.", "Ошибка.");
}
}
C#:
private void button5_Click(object sender, EventArgs e) //загрузка файла XML в форму
{
if (dataGridView1.Rows.Count > 0) //если в таблице больше нуля строк
{
MessageBox.Show("Очистите поле перед загрузкой нового файла.", "Ошибка.");
}
else
{
if (File.Exists("G:\\Data.xml")) // если существует данный файл
{
DataSet ds = new DataSet(); // создаем новый пустой кэш данных
ds.ReadXml("G:\\Data.xml"); // записываем в него XML-данные из файла
foreach (DataRow item in ds.Tables["Employee"].Rows)
{
int n = dataGridView1.Rows.Add(); // добавляем новую сроку в dataGridView1
dataGridView1.Rows[n].Cells[0].Value = item["Name"]; // заносим в первый столбец созданной строки данные из первого столбца таблицы ds.
dataGridView1.Rows[n].Cells[1].Value = item["Age"]; // то же самое со вторым столбцом
dataGridView1.Rows[n].Cells[2].Value = item["Programmer"]; // то же самое с третьим столбцом
}
}
else
{
MessageBox.Show("XML файл не найден.", "Ошибка.");
}
}
}
Редактирование мы представим в следующем виде – пользователь выбирает в DataGridView какую-либо строку, а в TextBox’е, NumericUpDown’е и ComboBox’е будут выводиться соответствующие этой строке данные.
C#:
private void dataGridView1_MouseClick(object sender, MouseEventArgs e) // выбор нужной строки для редактирования
{
textBox1.Text = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
int n = Convert.ToInt32(dataGridView1.SelectedRows[0].Cells[1].Value);
numericUpDown1.Value = n;
comboBox1.Text = dataGridView1.SelectedRows[0].Cells[2].Value.ToString();
}
C#:
private void button2_Click(object sender, EventArgs e) //редактирование
{
if (dataGridView1.SelectedRows.Count > 0)
{
int n = dataGridView1.SelectedRows[0].Index;
dataGridView1.Rows[n].Cells[0].Value = textBox1.Text;
dataGridView1.Rows[n].Cells[1].Value = numericUpDown1.Value;
dataGridView1.Rows[n].Cells[2].Value = comboBox1.Text;
}
else
{
MessageBox.Show("Выберите строку для редактирования.", "Ошибка.");
}
}
C#:
private void button3_Click(object sender, EventArgs e) //удалить выбранную строку
{
if(dataGridView1.SelectedRows.Count > 0)
{
dataGridView1.Rows.RemoveAt(dataGridView1.SelectedRows[0].Index); //удаление
}
else
{
MessageBox.Show("Выберите строку для удаления.", "Ошибка.");
}
}
C#:
private void button6_Click(object sender, EventArgs e) //очистить таблицу
{
if (dataGridView1.Rows.Count > 0)
{
dataGridView1.Rows.Clear();
}
else
{
MessageBox.Show("Таблица пустая.", "Ошибка.");
}
}