地基系列七 wpf_MVVM_007 修改表格中的一条数据

修改表格中的一行数据:
(1):声明一个类,获取当前选中行,将需要修改的字段回填到相应控件中。
(2):点击保存按钮后,获取用户修改后的数据。
(3):声明一个list,使用linq查询出当前行数据。
(4):将需要修改的字段,在list中替换。
(5):将list表中的字段,在数据库中替换。
例子:
(1):
public class myClass
{
public string 字段一{ get ; set ; }
public int? 字段二 { get ; set ; }
public double 字段三 { get ; set ; }
}
//获取表格当前选中行
myClass myRow = myDataGrid.CurrentItem as myClass;
//给控件赋值
myTextBox.Text = myRow.字段一.Trim();
myComboBox.SelectedValue = myRow.字段二;
myButton.Content = myRow.字段三;
(2):
private void btnUpdate_Click( object sender , RouteEventArgs e )
{
if ( myDataGrid.SelectedItem == null ) return;
//获取表格当前选中行
myClass myRow = myDataGrid.SelectedItem as myClass;
int my主键ID = Convert.ToInt32(myRow.主键ID);
var myTable = myModel.Table1.Where( p => p.主键ID == my主键ID ).SingleOrDefault();
if( myTable != null )
{
myTable.字段一 = Convert.ToString( myTextBox.Text );
myTable.字段二 = Convert.ToInt32( myComboBox.SelectedValue );
myTable.字段三 = Convert.ToDouble( myButton.Content );

			myModel.Entry( myTable ).State = System.Data.Entity.EntityState.Modified;
			if( myModel.SaveChanges() > 0 ) 
				Message.Show("修改成功");
			else 
				Message.Show("修改失败");
		}	
	}

备注:
【1】修改的字段,理应先验证再进行赋值给Table,字段的长度,与类型,需要与数据库中的一致。
【2】
接收由linq查询出一条需要修改的字段,可以使用Table来声明,而不是var:
Table1 myTable = myModel.Table1.Where( p => p.主键ID == my主键ID ).SingleOrDefault();
对比: var myTable = myModel.Table1.Where( p => p.主键ID == my主键ID ).SingleOrDefault();
【3】
两种获取表格当前行的情况:
点击表格内时,获取当前行:myDataGrid.CurrentItem;
选中表格一条数据,点击表格外的编辑按钮,获取当前行: myDataGrid.SelectedItem;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值