如何在C#中利用DataGridView控件编辑数据

添加,删除,修改基本上都是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();
}

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 基类说明 1.1 基类结构图 1.2 基类说明 1.2.1 BaseEditClass BaseEditClass是所有单表编辑功能的基类。BaseEditClass从NSGForm继承,以处理统一的界面和字体风格。 BaseEditClass抽象出了编辑类功能通用的方法并定义为基类方法,以便子类继承,并增加自己的代码。  自定义属性 名称 说明 DataTable 功能所编辑数据表 DataState 功能所处的状态:浏览(dsBrowse)、新增(dsInsert)、编辑(dsEdit) BatchSave 是否批量提交数据表,默认为False DeleteWarn 在删除记录时是否提示,默认为True  自定义方法 名称 说明 FormInit 在FormLoad时被调用,具体功能可重载该方法添加自定义的初始化代码 PostData 具体功能需要重载该方法,并调用具体的TableAdapter.Update(row),以保存数据数据库。 RefreshData 统一的刷新数据表过程,具体功能需要重载该方法,并调用具体的TableAdapter.Fill(DataTable),以查询数据 DataValid 统一的数据验证方法,在保存数据前被调用。具体功能可重载该方法添加自定义的数据校验代码 NewRecord 在新增数据时被调用,在具体过程可重载该方法添加自定义的新增记录默认值 SaveData 保存数据的方法,具体功能调用该过程保存数据 DeleteData 删除数据的方法,具体功能调用该过程删除数据 CancelData 取消数据修改的方法,具体功能调用该过程取消数据修改 1.2.2 BaseGridEdit BaseGridEdit是所有直接使用DataGridView进行编辑的功能的基类。BaseGridEdit从BaseEditClass继承。 自定义属性 名称 说明 Grid 编辑所用的DataGridView 自定义方法 名称 说明 RecordValid 统一的数据验证方法,在单条保存数据前被调用。具体功能可重载该方法添加自定义的数据校验代码 1.2.3 BaseGridEditForm BaseGridEditForm是所有直接使用DataGridView进行编辑的功能的模板。所有直接使用DataGridView进行编辑的功能都需要从该模板拷贝后进行修改。 2. 模板使用方法 2.1 BaseGridEditForm 使用BaseGridEditForm需要按以下四步操作就可以得到需要的功能。 一、 先从BaseGridEditForm拷贝文件到工程后修改类名、命名空间 二、 在项目的数据增加TableAdapter,以查询需要维护的指定的数据表 三、 将DataGridView绑定到新增的数据表 四、 修改以下基类方法 名称 说明 构造方法 增加”DataTable属性=新增数据表”的代码 FormInit 增加需要的Form初始化代码,如RefreshData以获得数据 PostData 增加一行代码:新增的TableAdapter.Update(row) RefreshData 增加使用新增TableAdapter.Fill(DataTable)的代码,以获得查询数据。注意:代码需要写在IsRefreshData = true;和 IsRefreshData = false;语句的间 RecordValid 增加自定义的数据校验语句。 NewRecord 增加自定义的新增数据默认值代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值