我在c#2003中,建一个表格
表格的每列的列名是商品名称 2007-04 2007-05 2007-06 2007-08 2007-09 2007-10
笔记本 34 54 12 43 34 54 这个列名的日期是动态的变化的,去的的是当前月并依次后加6个月这个table在 aspx页面里该如何写啊?其中的数字是存放在文本框中的
该如何办?
各位大侠帮忙啊!
谢谢拉!
表格的每列的列名是商品名称 2007-04 2007-05 2007-06 2007-08 2007-09 2007-10
笔记本 34 54 12 43 34 54 这个列名的日期是动态的变化的,去的的是当前月并依次后加6个月这个table在 aspx页面里该如何写啊?其中的数字是存放在文本框中的
该如何办?
各位大侠帮忙啊!
谢谢拉!
只不过中间几个<td>要循环,<td>中的内容为月份,这个是动态的!日期是动态的变化的,取的的是当前月并依次后加6个月
可惜不能贴图啊!
----------------------------------------------------------------------------------
| 商品名称 | 2007-04 | 2007-05 | 2007-06 | 2007-07 | 2007-08 | 2007-09 | 2007-10 |
----------------------------------------------------------------------------------
| 笔记本 | 34 | 22 | 55 | 22 | 12 | 66 | 45 |
----------------------------------------------------------------------------------
大致就是这样的一个表格啊!
然后绑定到DataGrid上
dt.Columns.Add("商品名称");
dt.Columns.Add("商品名称");
dt.Columns.Add("2007-04 ");
dt.Columns.Add("2007-04 ");
.......
comningbo(下雨不带伞) ( ) 信誉:98 Blog 加为好友
的方法不错,基本上就这是这样罗
DataSet GetGoodsByMonth( param DataTime[] dts, string name)
{
string sql = "select 商品名称,{0} from 商品表 where 品名列='" + name + "'";
string colums = "";
//拼SQL的衍生列
foreach( DataTime dt in dts )
{
string date = 从dt中取出年月;
string col = date + "= select count(*) from 商品表 where name=商品名 and 出商日期 between dt那个月分的一号 and dt那个月的31号";
//不要少逗号
string col += ",";
colums += col;
}
//最后一列不要逗号
colums = colums.SubString(0, colums.Length-1);
//拼Sql完毕
sql = String.Format(sql, colums);
//运行返回DATASET
........
//返回DataSet
........
}这个DataSet你往DataGrid上一绑就OK
思路是拼SQL,有兴趣的话可以想法优化SQL提高性能
技巧是衍生列
将行通过HtmlTableRow加入,每行的列通过HtmlTableCell加入!这样可以添加TextBox
像asp里面不是可以对<td>进行循环马?不知道在aspx怎么用阿?
怎么拼呢?我对不熟啊!
一定要在.cs里面实现吗?我想在aspx页面里实现可以吗??
你拼个SQL就好了啊
我的数据库表是这样的啊!
id ProductID number datetime
1 2 21 2007-03-01
2 2 23 2007-04-01
3 2 25 2007-05-01
4 2 43 2007-06-01
5 2 31 2007-03-01
6 3 23 2007-04-01
7 3 56 2007-05-01
8 3 16 2007-06-01
然后显示出来的样子是----------------------------------------------------------------------------------
| 商品名称 | 2007-04 | 2007-05 | 2007-06 | 2007-07 | 2007-08 | 2007-09 | 2007-10 |
----------------------------------------------------------------------------------
| 2 | 23 | 25 | 43 | | | | |
----------------------------------------------------------------------------------
| 3 | 23 | 56 | 16 | | | | |
----------------------------------------------------------------------------------
日期是显示从当前月往后依次类推6个月,如果,后面的月份没有输入数据则显示空白
每个显示的数据都是在一个input文本框中的,可以进行保存修改,如果,空白的地方输入数据的话则是新增一条!
该如何搞呢?头都大了啊!
小弟是新手,希望高手们帮帮忙啊!
(
id int identity,
productid int,
number int,
[datetime] datetime
)insert into products values(2,21,'2007-03-01')
insert into products values(2,23,'2007-04-01')
insert into products values(2,25,'2007-05-01')
insert into products values(2,43,'2007-06-01')
insert into products values(2,31,'2007-03-01')
insert into products values(3,23,'2007-04-01')
insert into products values(3,56,'2007-05-01')
insert into products values(3,16,'2007-06-01')select * from productsselect productid
, sum(case month([datetime]) when month(getdate()) then number end)
, sum(case month([datetime]) when month(getdate())+ 1 then number end)
, sum(case month([datetime]) when month(getdate())+ 2 then number end)
, sum(case month([datetime]) when month(getdate())+ 3 then number end)
, sum(case month([datetime]) when month(getdate())+ 4 then number end)
, sum(case month([datetime]) when month(getdate())+ 5 then number end)
, sum(case month([datetime]) when month(getdate())+ 6 then number end)
from products
group by productid显示结果为:
productid
----------- ----------- ----------- ----------- ----------- ----------- ----------- -----------
2 23 25 43 NULL NULL NULL NULL
3 23 56 16 NULL NULL NULL NULL(所影响的行数为 2 行)下面你在自己想想如何绑定吧