环境:c#+sql.
存储过程importdata 生成如下结果集:
型号 2/1/2012 3/1/2012 4/1/2012 5/1/2012
AAA 200 456 564 342
BBB 300 432 589 456
CCC 345 124 899 765
DDD 342 453 543 342除了字段“型号”外,其他日期字段都是根据其他表动态生成,所以日期和字段个数也不定(最少三个日期字段,最多6个)。
想把上面结果集在gridview显示出来,通过gridview界面邦定的话,因为日期字段不确定,所以不可行。想通过代码绑定的话
该如何做?显示格式要求和结果集一致。
请大家帮忙,提供代码,谢谢。
存储过程importdata 生成如下结果集:
型号 2/1/2012 3/1/2012 4/1/2012 5/1/2012
AAA 200 456 564 342
BBB 300 432 589 456
CCC 345 124 899 765
DDD 342 453 543 342除了字段“型号”外,其他日期字段都是根据其他表动态生成,所以日期和字段个数也不定(最少三个日期字段,最多6个)。
想把上面结果集在gridview显示出来,通过gridview界面邦定的话,因为日期字段不确定,所以不可行。想通过代码绑定的话
该如何做?显示格式要求和结果集一致。
请大家帮忙,提供代码,谢谢。
解决方案 »
- GridView用内置的Sorting事件,能对GridView内的所有字段进行排序的完整代码有吗?我自己 写的搞死了,唉
- [馨郁星愿]2级域名配置!
- 怎样提取TextBox里面的数字?
- 给大家推荐一个小型.net代码开发工具,平时的小代码可以在这里编辑运行,然后收藏,以备以后查阅
- TreeView控件如何使用?
- 关于静态页面html覆盖后无法即时更新的问题。
- 求梅花雨日历控件,马上结帐
- 如何取得webform的寬度和高度
- 寻求在web客户端能实时显示图形ActiveX控件及其源码!?做过的朋友可以给个思路!链接什么的!
- DataTable出错问题
- input输入框 判断 手机重复的问题?
- 求正则表达式循环提取链接,标题,时间!
和Select什么关系?先new一个Datatable,然后筛选你查询的数据逐行、逐列加入这个Datatable,然后对gridview进行绑定
型号
1/1/2012
2/1/2012
3/1/2012
厂家
价格
共六个字段,其中三个字段为日期的是每次不确定的,有可能个数不定(3-6个),有可能日期不定(也可呢个是8/1/2012)。如果我只要型号,1/1/2012,2/1/2012,3/1/2012,而不要厂家和价格,我该如何读到datatable中?如果用sql='select 型号,1/1/2012,2/1/2012,3/1/2012'显然如果日期变了,就会出错。
页面代码:
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
</div>
</form>
后台代码:Partial Class manage_test
Inherits System.Web.UI.Page Private Sub LoadData()
Dim _db As New RedPalace.Tools.DBHelp.ConnMSSQL
Dim dt1 As Data.DataTable = _db.DataTable("SELECT * FROM [T1]") '第一个表(假设有字段A,B,C)
Dim dt2 As Data.DataTable = _db.DataTable("SELECT * FROM [T2]") '第一个表(假设有字段D,E,F)
'假设我们要组合A,C,E字段呈现
Dim _dt As New Data.DataTable
Dim coll1 As Data.DataColumn = _dt.Columns.Add("呈现A", GetType(String))
Dim coll2 As Data.DataColumn = _dt.Columns.Add("呈现C", GetType(String))
Dim coll3 As Data.DataColumn = _dt.Columns.Add("呈现E", GetType(String))
Dim dr As Data.DataRow
For i As Integer = 0 To dt1.Rows.Count - 1
dr = _dt.NewRow()
dr("呈现A") = dt1.Rows(i)("A")
dr("呈现C") = dt1.Rows(i)("C")
dr("呈现E") = dt2.Rows(i)("E")
_dt.Rows.Add(dr)
Next
'我是假设你的数据表1和2是一样的行数,各种逻辑错误处理及筛选方案自行编写
GridView1.DataSource = _dt
GridView1.DataBind()
End Sub Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
LoadData()
End Sub
End Class
数据表代码CREATE TABLE [T1](
[id] [int] IDENTITY(1,1) NOT NULL,
[A] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[B] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[C] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
CONSTRAINT [PK_T1] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]CREATE TABLE [T2](
[id] [int] IDENTITY(1,1) NOT NULL,
[D] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[E] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[F] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
CONSTRAINT [PK_T2] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]GO