C#,DataTable中列中值的自动添加 DataTable中,想让“单价”列有变化后,“金额”列的值自动变为“单价”列与“数量”列的乘积,应该怎么办呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 DataColumn col=DataTable.Cloumns["金额"];col.Expression="单价 * 数量"; DataTable 数据在什么地方改的,没有操作界面吗...? 这个DataTable在dataGridView中改,一般情况下我会在CellValueChanged事件中用“dataGridView1.Rows[e.RowIndex].Cells[0].Value”之类的东西来相互计算。但这次的Cells["单价"]在界面中不可更改,所以研究在DataTable中自动计算。 更正一下:Cells["单价"]也不是在界面中不可更改,而是其的变化不在操作界面中体现,所以好像只能在DataTable中自动计算 object o=dt.Compute("",""); 这个可以设定让DataTable自动算的吧 我以前用的是别的控件,也基于gridview的 如果你用的是CellValueChanged事件的话这个你试试 DataRow dr = dataGridView1.GetDataRow(e.RowHandle); //得到改变值的行 dr["单价"] = "单价 * 数量"; 4楼的回答是可以的,DataColumn col=DataTable.Cloumns["金额"];col.Expression="单价 * 数量";但好像“Cloumns["金额"];”不会允许在操作界面中更改,而实际是要求“金额”可以要求在dataGridView中更改 那可以处理DataTable的ColumnChanged事件: void dt_ColumnChanged(object sender, DataColumnChangeEventArgs e) { if (e.Column.ColumnName == "单价" || e.Column.ColumnName == "数量") { e.Row["金额"] = (decimal)e.Row["单价"] * (decimal)e.Row["数量"]; this.dataGridView1.UpdateCellValue(index/*金额列的索引*/, this.dataGridView1.CurrentRow.Index); } } webclient 的 DownloadDataAsync异常捕获问题 请大家帮忙看看 先感谢 中文字符转换 在重写一些方法的时候,base的位置 (-?\d+(\.\d+)?)? 为什么 int 类型就不行呢。。。 能不能加上可int 类型的 关于遮蒙层的问题 初学者跪求一个C#调用web service的代码例子 bs 中的树型控件 面试问题 哪些网站是你认为比较精彩的?拿出来与大家一起分享 分类问题,如何实现这样的效果,请高手指教! 一个正则求解 fileupload 如何获取文件本地路径名 c:/pic
col.Expression="单价 * 数量";
一般情况下我会在CellValueChanged事件中用“dataGridView1.Rows[e.RowIndex].Cells[0].Value”之类的东西来相互计算。但这次的Cells["单价"]在界面中不可更改,所以研究在DataTable中自动计算。
Cells["单价"]也不是在界面中不可更改,而是其的变化不在操作界面中体现,所以好像只能在DataTable中自动计算
如果你用的是CellValueChanged事件的话这个你试试
DataRow dr = dataGridView1.GetDataRow(e.RowHandle); //得到改变值的行
dr["单价"] = "单价 * 数量";
4楼的回答是可以的,
DataColumn col=DataTable.Cloumns["金额"];
col.Expression="单价 * 数量";但好像“Cloumns["金额"];”不会允许在操作界面中更改,
而实际是要求“金额”可以要求在dataGridView中更改
{
if (e.Column.ColumnName == "单价" || e.Column.ColumnName == "数量")
{
e.Row["金额"] = (decimal)e.Row["单价"] * (decimal)e.Row["数量"];
this.dataGridView1.UpdateCellValue(index/*金额列的索引*/, this.dataGridView1.CurrentRow.Index);
}
}