如何在C#中利用DataGridView控件编辑数据
2009-12-16 17:10
716 查看
添加,删除,修改基本上都是datagridview自动完成的,保存数据要自己弄一下,看你的数据与是怎么样的
public partial class TeamManagement : UserControl
{
public TeamManagement()
{
InitializeComponent();
}
private void TeamManagement_Load(object sender, EventArgs e)
{
RefreshGrid();
}
private void RefreshGrid()
{
teamTableAdapter.Fill(roadFeeDataSet.Team);
dataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
dataGridView.AutoResizeColumns();
}
private void dataGridView_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
rowUpdated = true;
if (dataGridView.Columns[e.ColumnIndex].Name == "teamNameDataGridViewTextBoxColumn")
{
foreach (DataGridViewRow row in dataGridView.Rows)
{
if (e.RowIndex != row.Index && !row.IsNewRow &&
dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value != null &&
row.Cells[e.ColumnIndex].Value != null &&
e.FormattedValue.ToString().Trim()
== row.Cells[e.ColumnIndex].Value.ToString().Trim()
)
{
MessageBox.Show("名称已存在,请使用不同的名称!", "输入错误",
MessageBoxButtons.OK, MessageBoxIcon.Error);
e.Cancel = true;
}
}
}
}
private void dataGridView_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
{
if ((int)userTableAdapter.SelectCountByTeamID((int?)e.Row.Cells["teamIDDataGridViewTextBoxColumn"].Value) > 0)
{
MessageBox.Show("此记录已在使用,您不能删除!", "提示", MessageBoxButtons.OK,
MessageBoxIcon.Information);
e.Cancel = true;
return;
}
if (MessageBox.Show("您真的要删除此条记录吗?", "提示", MessageBoxButtons.YesNo,
MessageBoxIcon.Question) == DialogResult.No)
{
e.Cancel = true;
}
}
private bool rowAdded = false;
private bool rowUpdated = false;
private void dataGridView_UserAddedRow(object sender, DataGridViewRowEventArgs e)
{
rowAdded = true;
}
private void dataGridView_RowValidated(object sender, DataGridViewCellEventArgs e)
{
if (rowAdded || rowUpdated)
{
rowAdded = false;
rowUpdated = false;
teamTableAdapter.Update(roadFeeDataSet);
RefreshGrid();
}
}
private void dataGridView_UserDeletedRow(object sender, DataGridViewRowEventArgs e)
{
teamTableAdapter.Update(roadFeeDataSet);
RefreshGrid();
}
}
public partial class TeamManagement : UserControl
{
public TeamManagement()
{
InitializeComponent();
}
private void TeamManagement_Load(object sender, EventArgs e)
{
RefreshGrid();
}
private void RefreshGrid()
{
teamTableAdapter.Fill(roadFeeDataSet.Team);
dataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
dataGridView.AutoResizeColumns();
}
private void dataGridView_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
rowUpdated = true;
if (dataGridView.Columns[e.ColumnIndex].Name == "teamNameDataGridViewTextBoxColumn")
{
foreach (DataGridViewRow row in dataGridView.Rows)
{
if (e.RowIndex != row.Index && !row.IsNewRow &&
dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value != null &&
row.Cells[e.ColumnIndex].Value != null &&
e.FormattedValue.ToString().Trim()
== row.Cells[e.ColumnIndex].Value.ToString().Trim()
)
{
MessageBox.Show("名称已存在,请使用不同的名称!", "输入错误",
MessageBoxButtons.OK, MessageBoxIcon.Error);
e.Cancel = true;
}
}
}
}
private void dataGridView_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
{
if ((int)userTableAdapter.SelectCountByTeamID((int?)e.Row.Cells["teamIDDataGridViewTextBoxColumn"].Value) > 0)
{
MessageBox.Show("此记录已在使用,您不能删除!", "提示", MessageBoxButtons.OK,
MessageBoxIcon.Information);
e.Cancel = true;
return;
}
if (MessageBox.Show("您真的要删除此条记录吗?", "提示", MessageBoxButtons.YesNo,
MessageBoxIcon.Question) == DialogResult.No)
{
e.Cancel = true;
}
}
private bool rowAdded = false;
private bool rowUpdated = false;
private void dataGridView_UserAddedRow(object sender, DataGridViewRowEventArgs e)
{
rowAdded = true;
}
private void dataGridView_RowValidated(object sender, DataGridViewCellEventArgs e)
{
if (rowAdded || rowUpdated)
{
rowAdded = false;
rowUpdated = false;
teamTableAdapter.Update(roadFeeDataSet);
RefreshGrid();
}
}
private void dataGridView_UserDeletedRow(object sender, DataGridViewRowEventArgs e)
{
teamTableAdapter.Update(roadFeeDataSet);
RefreshGrid();
}
}
相关文章推荐
- 如何在C#中利用DataGridView控件编辑数据
- C#中,datagridview与sql数据源绑定后,通过控件更改数据如何自动回写更新到数据源
- C#如何使用dataGridView控件显示类对象数据
- C# winform datagridview 无需点击两次即可编辑内嵌控件的方法和删除默认的空行的方法
- 转:C# DataGridView控件清空数据出错解决方法
- (转)如何利用书签向word文档读取或写入数据[C#]
- 如何使数据绑定的控件实现“上一条”、“下一条”、“第一条”和“最后一条”的功能?(WinForm, C#)
- WinForm中利用DataGridView控件对数据进行批量操作
- WinForm中利用DataGridView控件对数据进行批量操作
- C# 如何定义让PropertyGrid控件显示[...]按钮,并且点击后以下拉框形式显示自定义控件编辑属性值
- Visual C# 2005 - 如何于DataGridView控件中以跨数据行方式显示数据
- C#利用DataGridView实现数据的快速输入
- 利用datagridview控件编辑数据库,并实现源数据库实时修改
- Visual C# 2005 - 如何于DataGridView控件中以跨数据行方式显示数据
- C#:直接在DataGridView控件中修改数据
- C#:从DataGridView控件托放数据到TreeView控件
- 如何将字典Dictionary数据绑定到DataGridView控件上
- C#利用DataGridView实现数据的快速输入
- Delphi中如何让TEdit编辑框控件从右边开始输入数据呢?
- C#中如何遍历datagridview表格控件中的每一个格子(每一个单元格)