注册 登录
编程论坛 ASP.NET技术论坛

[求助]怎样直接利用数据源里的值,非绑定!

冰残剑 发布于 2007-05-30 17:42, 1235 次点击
比如定义了下面的数据源控件:
<asp:SqlDataSource ID="DataSource1" runat="server" OnLoad="DataSource1_Load" ConnectionString="<%$ ConnectionStrings:DBConnectionString %>" ProviderName="System.Data.SqlClient">
</asp:SqlDataSource>

那以后在CS文件里我想直接使用他里面的值,就像使用一个DataTable那样,行得通吗?!
若不行,那能不能将他赋值给DataTable
14 回复
#2
zidu2007-05-30 17:55
不明白你的需求,不想用数据源控件,就直接将数据读入DataTable不就行了
#3
冰残剑2007-05-30 18:01
我的意思是使用该数据源来绑定数据到GridView;
不过在其他地方也想用到该数据源里的某个字段值,这时不知怎用?
#4
GrimFish2007-05-30 18:03

还是把数据放到Dataset里吧。这样方便操作。
SqlDataSource没用过。感觉太不方便了。

#5
zidu2007-05-30 18:04
既然已经BIND到GRID了,就读取GRID中的值呗,好办
#6
冰残剑2007-05-30 18:05
问题是在绑定之前我就要用到了
#7
GrimFish2007-05-30 18:09

还没绑定就要用里面的东西?你开玩笑吧?

还没绑定那么你只能写个方法把你要的东西取出来用

#8
冰残剑2007-05-30 18:13
我不想再连接一次数据库,像DataTable在绑定之前是可以使用的
#9
zidu2007-05-30 18:16
不用数据源控件,读数据到DataTable中,查值,再BIND
#10
冰残剑2007-05-30 18:19

这我当然知道,我只想问下高手们,数据源控件有没有我说的那功能

#11
zidu2007-05-30 18:30
好象没有,坐等
#12
铲铲2007-05-31 00:21
DataSource都有一个叫做Select的方法,传递一个SelectArgument对象。返回一个支持IEnumerable接口的对象。一般来说如果传递一个空构造的SelectArgument对象调用该Select返回一个System.Data.DataView对象。
可以使用这样的方式
System.Data.DataView dvTest = (System.Data.DataView)DataSource.Select(new SelectArguement());
获得DataView对象。然后读取DataView对象中的数据即可
#13
bygg2007-05-31 09:08
DataTable dt = (DataTable)GridView1.DataSource;
#14
铲铲2007-05-31 10:32
为什么要去调用GridView,和其他控件扯关系。假设不需要存在这样的数据显示控件,只有DataSource数据源控件,这句话就不行了。
另外,设置了控件的DataSourceID属性,DataSource属性一般不作设置,只会得到null。
DataSource支持传入的是object对象,你又从何知晓它一定是个DataTable。
DataSource只要是实现了IEnumerable接口的对象都接受,范围包括数组、DataSet,DataTable,DataView等等。
#15
冰残剑2007-05-31 12:34

谢谢 萨^2

1