喜欢技术钻研的进,操蛋的UI设计出的效果,请问大神这个效果可以实现吗?怎么实现?
表名 T_Products数据源
ID Nmae Spec
1 name1 100
2 name2 80
3 name2 100
4 name5 100
5 name6 100
6 name1 150
7 name3 100
8 name5 30
9 name2 400
10 name1 200
11 name1 300
12 name3 800
希望得出的查询结果是
Nmae Spec
name1 100
150
200
300
name2 80
100
400
name3 100
800
name5 100
30
name6 100
UI 技术钻研 查询 sql server 界面设计 --------------------编程问答-------------------- 文不对题 --------------------编程问答--------------------
什么意思? --------------------编程问答-------------------- 不懂意思。。。。 --------------------编程问答--------------------
感觉这个很简单?
--------------------编程问答-------------------- pivot table控件,或者一些其他第三方的grid控件,自带的winform控件估计很难搞. --------------------编程问答-------------------- 希望得出的查询结果是
Nmae Spec
name1 100
150
200
300
name2 80
100
400
name3 100
800
name5 100
30
name6 100 --------------------编程问答-------------------- 你这SQL是要排序吗 --------------------编程问答-------------------- 如果是数据库表的话用group by 后轮训获取各个分组的具体值
如果是内存表的话用linq的groupby功能也很方便 --------------------编程问答--------------------
最好是sql语句就可以处理
艹蛋的UI设计师设计出这种艹蛋的效果
--------------------编程问答--------------------
可以不排序,但是要Name相同的要放在一起 --------------------编程问答-------------------- 那就让操蛋的UI设计师去使用操蛋的第三方控件展现好了. --------------------编程问答--------------------
如果是数据库表的话用group by 后轮训获取各个分组的具体值
如果是内存表的话用linq的groupby功能也很方便
group by应该没有这么简单吧?
目前只想到一个分布式处理,但是感觉性能上不行 --------------------编程问答--------------------
那就让操蛋的UI设计师去使用操蛋的第三方控件展现好了.
pivot table控件,或者一些其他第三方的grid控件,自带的winform控件估计很难搞.
最好是sql语句就可以处理
艹蛋的UI设计师设计出这种艹蛋的效果
哎!人家把效果图设计出来了,后面的事情就不管了,程序员的悲剧 --------------------编程问答-------------------- 这困难么????根据Name排序,然后显示时跟前一条数据进行比较,如果Name相同就不显示当前Name,为什么一定要SQL呢? --------------------编程问答--------------------
这困难么????根据Name排序,然后显示时跟前一条数据进行比较,如果Name相同就不显示当前Name,为什么一定要SQL呢?
齐天大圣打妖怪不难,但是沙悟净打妖精应该还是有一点棘手 --------------------编程问答--------------------
这困难么????根据Name排序,然后显示时跟前一条数据进行比较,如果Name相同就不显示当前Name,为什么一定要SQL呢?
然后显示时跟前一条数据进行比较????? --------------------编程问答-------------------- select * from table order by name;
//rdr sqlreader
List<Entity> list = new List<Entity>();
while(rdr.Read())
{
list.Add(new Entity()
{
Name= rdr["name"].ToString(),
Spec=(int)rdr["Spec"]
}
if(list.Count>1)
{
if(list[list.Count-1].Name==list[list.Count-2].Name)
{
list[list.Count-1].Name=string.Empty;
}
}
} --------------------编程问答-------------------- 后台拼Table HTML 然后输出,以前经常这么搞 --------------------编程问答--------------------
表名 T_Products
数据源
ID Nmae Spec
1 name1 100
2 name2 80
3 name2 100
4 name5 100
5 name6 100
6 name1 150
7 name3 100
8 name5 30
9 name2 400
10 name1 200
11 name1 300
12 name3 800
希望得出的查询结果是
Nmae Spec
name1 100
150
200
300
name2 80
100
400
name3 100
800
name5 100
30
name6 100
这不就DataGridView行合并么。这有啥难的SO EASY
1.WINFORM? 找Devexxxxxx的 GridControl啥都不用写直接将数据源转进去,设一个CellMearge属睡就可以了
2.WEB 也找DevExxx WebGridControl 也有的。
3.WEB 你自己 写个Table合并行就是了,So EASY --------------------编程问答--------------------
select Nmae,Spec from T_Products group by Nmae order by Nmae按名字分組按名字排序,結果存入datatable,datagridview和datatable綁定,結果應該如下:
Nmae Spec
name1 100
name1 150
name1 200
name1 300
name2 80
name2 100
name2 400
name3 100
name3 800
name5 100
name5 30
name6 100 --------------------编程问答--------------------
select Nmae,Spec from T_Products group by Nmae order by Nmae按名字分組按名字排序,結果存入datatable,datagridview和datatable綁定,結果應該如下:
Nmae Spec
name1 100
name1 150
name1 200
name1 300
name2 80
name2 100
name2 400
name3 100
name3 800
name5 100
name5 30
name6 100
相同的name只保留一个 --------------------编程问答-------------------- --------------------编程问答-------------------- 那就datatable加個循環判斷吧
string name = "";//變量--------------------编程问答-------------------- 利用字典,以name做key,如果有则添加到key对应的value中,如果没有则添加,然后输出,html控制 --------------------编程问答-------------------- 如果连这个都解决不了 那你以后做程序 就会很头疼了 --------------------编程问答--------------------
for(int i=0;i<dt.rows.count;i++)
{
if(dt.rows[i][1] == name)//當該行的姓名和name相同執行以下操作
{
dt.rows[i][1] = "";//name設為“”
}
else
{
name = dt.rows[i][1];//不同則該行不變,令name內容變為該行姓名
}
}
select Nmae,Spec from T_Products group by Nmae order by Nmae按名字分組按名字排序,結果存入datatable,datagridview和datatable綁定,結果應該如下:
Nmae Spec
name1 100
name1 150
name1 200
name1 300
name2 80
name2 100
name2 400
name3 100
name3 800
name5 100
name5 30
name6 100
相同的name只保留一个
那只能在加进datatable之前做处理解决了 --------------------编程问答-------------------- var query=from p db.table
group p by p.Name into g
select
{
Name =g.Key,
Spec = String.Join("、", g.Select(x => x.Spec).ToArray())
};
Name Spec
name1 100、150、200、300
name2 80、100、400
name3 100、800
name5 100、30
name6 100 --------------------编程问答--------------------
如果连这个都解决不了 那你以后做程序 就会很头疼了
不是解决不了,是想找一个性能更好的方法 --------------------编程问答-------------------- --------------------编程问答--------------------
var query=from p db.table
group p by p.Name into g
select
{
Name =g.Key,
Spec = String.Join("、", g.Select(x => x.Spec).ToArray())
};
Name Spec
name1 100、150、200、300
name2 80、100、400
name3 100、800
name5 100、30
name6 100
看样子你还是没有看懂我所说的问题 --------------------编程问答--------------------
就是这个效果吗
恩 是的 --------------------编程问答--------------------
那就datatable加個循環判斷吧
string name = "";//變量
for(int i=0;i<dt.rows.count;i++)
{
if(dt.rows[i][1] == name)//當該行的姓名和name相同執行以下操作
{
dt.rows[i][1] = "";//name設為“”
}
else
{
name = dt.rows[i][1];//不同則該行不變,令name內容變為該行姓名
}
}
name不是一个固定值, --------------------编程问答--------------------
var query=from p db.table
group p by p.Name into g
select
{
Name =g.Key,
Spec = String.Join("、", g.Select(x => x.Spec).ToArray())
};
Name Spec
name1 100、150、200、300
name2 80、100、400
name3 100、800
name5 100、30
name6 100
看样子你还是没有看懂我所说的问题
楼主到底要什么效果,spec换行? --------------------编程问答--------------------
var query=from p db.table
group p by p.Name into g
select
{
Name =g.Key,
Spec = String.Join("、", g.Select(x => x.Spec).ToArray())
};
Name Spec
name1 100、150、200、300
name2 80、100、400
name3 100、800
name5 100、30
name6 100
看样子你还是没有看懂我所说的问题
楼主到底要什么效果,spec换行?
希望得出的查询结果是
Nmae Spec
name1 100
150
200
300
name2 80
100
400
name3 100
800
name5 100
30
name6 100
列表行数不变,但是相同的name只取一个 --------------------编程问答--------------------
var query=from p db.table
group p by p.Name into g
select
{
Name =g.Key,
Spec = String.Join("、", g.Select(x => x.Spec).ToArray())
};
Name Spec
name1 100、150、200、300
name2 80、100、400
name3 100、800
name5 100、30
name6 100
看样子你还是没有看懂我所说的问题
楼主到底要什么效果,spec换行?
希望得出的查询结果是
Nmae Spec
name1 100
150
200
300
name2 80
100
400
name3 100
800
name5 100
30
name6 100
列表行数不变,但是相同的name只取一个
查出来以后用split根据"、"符号分割,然后取数组中的元素 --------------------编程问答--------------------
那就datatable加個循環判斷吧
string name = "";//變量
for(int i=0;i<dt.rows.count;i++)
{
if(dt.rows[i][1] == name)//當該行的姓名和name相同執行以下操作
{
dt.rows[i][1] = "";//name設為“”
}
else
{
name = dt.rows[i][1];//不同則該行不變,令name內容變為該行姓名
}
}
name不是一个固定值,
楼主...太弱了... --------------------编程问答-------------------- 无力吐槽啊!!!
--------------------编程问答-------------------- sql+算法+ui展示的控件(去了解下什么easy ui之类的列表控件)可以实现你的需求。
补充:.NET技术 , C#