我现在有这样一个Datatable结构parameterName , Port, Leveaa 1 A
aa 1 A
bb 2 A
bb 2 A
上的结构是我从Excel读取后转换的存到一个DataTable中 然后显示到GridView里面 给用户 用户需要把里面像第一条和第二条
第三条和第四条 他们中重复的两行中其中一行中的参数名改了 然后才可以点保存按钮保存数据到数据库
如果其中还有重复则用颜色标识出来 要用户更改其中 parameterName Port Leve必须唯一确定一行记录
不只到大家什么好的方法
aa 1 A
bb 2 A
bb 2 A
上的结构是我从Excel读取后转换的存到一个DataTable中 然后显示到GridView里面 给用户 用户需要把里面像第一条和第二条
第三条和第四条 他们中重复的两行中其中一行中的参数名改了 然后才可以点保存按钮保存数据到数据库
如果其中还有重复则用颜色标识出来 要用户更改其中 parameterName Port Leve必须唯一确定一行记录
不只到大家什么好的方法
解决方案 »
- 关于项目引用问题
- 关于数据替换的问题
- 请问用VSS 管理项目开发,能否实现开发人员只能在服务器修改文件,而无法下载到本机.................
- DataGrid嵌套一个DropDownList,DropDownList绑定数据库中数据中遇到了些问题,将仅有的40分献上
- 关于数据库连接的问题 望各位帮忙看看
- 在线等菜鸟问题:如何判断网页连接失败?
- .Net2.0中的MultiPage和TabStrip的替代品是什么,treeview不是一经成了标准控件了吗!
- 急!!!!DataGrid分页后 itemcommand 响应的总是第一页
- 菜鸟问题~关于类型转换
- 在一checkboxlist中,如何实现将一checkbox选中,其余全部选中?注意是在checkboxlist中
- 获取计算机名?
- GridView处于编辑状态时,取不到TextBox中修改后的值。
------------
var query=(from tt in DataTable.AsEnumerable() select tt).Distinct();
DataView dv=query.AsDataView();
//绑定dv到GrivView
parameterName , Port, Leve ,flagaa 1 A aa1A
aa 1 A aa1A
bb 2 A bb2A
bb 2 A bb2A只比较flag这列就方便多了!
用DataView排序,然后循环,如果这一行的某向个字段值=上一行,将重复列做个标记,显示的时候检查这个标记,显示不同颜色.
parameterName , Port, Leve ,flagaa 1 A aa1A
aa 1 A aa1A
bb2 1 A bb21A
bb 21 A bb21A
bb 2 1A bb21A这下可就惨了
dt.Columns.Add("parameterName");
dt.Columns.Add("Port");
dt.Columns.Add("Leve");
dt.Rows.Add("aa", "1", "A");
dt.Rows.Add("aa", "1", "A");
dt.Rows.Add("bb", "2", "A");
dt.Rows.Add("bb", "2", "A"); ///这里开始处理.
///
dt.Columns.Add("Flag");
DataView dv = dt.DefaultView;
dv.Sort = "parameterName,Port,Leve";
for(int i =1;i<dv.Count;i++)
{
if (dv[i]["parameterName"].ToString() == dv[i - 1]["parameterName"].ToString())//我这里只比较一个字段,你可改成多个
{
dv[i].Row["Flag"] = "1";
} }
dt.Columns.Add("parameterName");
dt.Columns.Add("Port");
dt.Columns.Add("Leve");
dt.Rows.Add("aa", "1", "A");
dt.Rows.Add("aa", "1", "A");
dt.Rows.Add("bb", "2", "A");
dt.Rows.Add("bb", "2", "A"); ///这里开始处理.
///
dt.Columns.Add("Flag");
DataView dv = dt.DefaultView;
dv.Sort = "parameterName,Port,Leve";
for(int i =1;i<dv.Count;i++)
{
if (dv[i]["parameterName"].ToString() == dv[i - 1]["parameterName"].ToString())//我这里只比较一个字段,你可改成多个
{
dv[i].Row["Flag"] = "1";
} }OK