一个页面要从数据库中调8类新闻,数据库中这8类新闻都在一个表里
正常的做法
sql="select * from newstable where type=1"
dataset ds=new dataset();
这样吧第一句的数据填充到ds里
然后绑定到dataset1....
然后
sql="select * from newstable where type=2"
dataset ds1=new dataset();
这样吧第一句的数据填充到ds1里
然后绑定到dataset2....
-----------------------------------
这样页面页面要有8个dataset,严重影响效率。。可以不可以
sql="select * from newstable where type in(1,2,3,4,5,6,7,8)"
dataset ds=new dataset();
把数据填充到ds里,然后再根据type绑定到dataset中呢?
或者有没有更好的其他方法呢
正常的做法
sql="select * from newstable where type=1"
dataset ds=new dataset();
这样吧第一句的数据填充到ds里
然后绑定到dataset1....
然后
sql="select * from newstable where type=2"
dataset ds1=new dataset();
这样吧第一句的数据填充到ds1里
然后绑定到dataset2....
-----------------------------------
这样页面页面要有8个dataset,严重影响效率。。可以不可以
sql="select * from newstable where type in(1,2,3,4,5,6,7,8)"
dataset ds=new dataset();
把数据填充到ds里,然后再根据type绑定到dataset中呢?
或者有没有更好的其他方法呢
dataset ds=new dataset();
查詢出數據后
datagrid1.datasource = ds.Tables[0].DefaultView.RowFilter = "type=1";
...
datagrid2.datasource = ds.Tables[0].DefaultView.RowFilter = "type=2";
...
datagrid3.datasource = ds.Tables[0].DefaultView.RowFilter = "type=3";
不過一般顯示新聞標題的話,結構都是一樣的,可以用用戶控件
dataset ds=new dataset();
把数据填充到ds里,然后再根据type绑定到dataset中呢?
--------------------------
可以
ds.Table[0] ds.Table[1] .... 分别对不同的表就可以了
按照楼上说的也没有问题,就是放到datatable里面再去判断
dataset ds=new dataset();
把数据填充到ds里,然后:DataView dv1 = ds.Table[0].Copy().DefaultView;
dv1.RowFilter = "[type] = 1";
DataGrid1.DataSource = dv1;
DataGrid1.DataBind();DataView dv2 = ds.Table[0].Copy().DefaultView;
dv2.RowFilter = "[type] = 2";
DataGrid2.DataSource = dv2;
DataGrid2.DataBind();//.........
Eddie005(♂) №.零零伍 (♂) 方法都是对的...
to:给RowFilter赋值之后会影响到数据集本身,不符合条件的数据会被移除~
在我看来,,filter以后的数据,没有变化,,,同意edwardfay
比如
<%for(int i=0;i<=(int)ds.Tables["temptbl"].Rows.Count/2;i++){%>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="5" align="center"><img src="images/fanchang16.gif" width="367" height="5"></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="ff">
<tr align="center">
<td width="22%"><%=ds.Tables["temptbl"].Rows[i*2]["名次"]%></td>
<td width="38%"><A href='../Blog/userOpus.aspx?blogID=<%=ds.Tables["temptbl"].Rows[i*2]["userid"]%>&opusID=<%=ds.Tables["temptbl"].Rows[i*2]["opusid"]%>' ><%=ds.Tables["temptbl"].Rows[i*2]["opusname"]%></a></td>
<td width="25%"><A href='../Blog/index.aspx?blogID=<%=ds.Tables["temptbl"].Rows[i*2]["userid"]%>' ><%=ds.Tables["temptbl"].Rows[i*2]["nickname"]%></a></td>
<td width="15%"><a href='javascript:GetShiTing("<%=ds.Tables["temptbl"].Rows[i*2]["opusid"]%>")'><img src="images/ting2.gif" width="20" height="17" style="BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none"></a></td>
</tr>
</table>
<%}%>
怎么写呢
sql="select * from newstable where type=1;select * from newstable where type=2;select * from newstable where type=3;"//用分号隔开
dataset ds=new dataset();
这样就可类推,可以取出数据放入DATASET,
取值 是如取type=1的数据,就ds.tables[0],取type=2,就ds.tables[1],类推
以前只试过三个语句的,不知道8个语句可行不?
应该会行的,试试
sql="select * from newstable where type in(1,2,3,4,5,6,7,8)"
dataset ds=new dataset();
datagrid1.datasource = ds.Tables[0].DefaultView.RowFilter = "type=1";
...