在asp.net2.0中通常都是gridview和sqldatasource配合使用可以在sqldatasource中调用存储过程,然后把返回的数据集绑定到gridview中去,但是不知道有没想过,怎么才能把sqldatasource调用的存储过程返回的参数(存储过程标记为OutPut的参数)绑定到gridview中去,用google搜索了几天都没有什么结果,不知道是否可以这么做,如果不可以的话,有没什么办法可以变通下。请大家给我个思路。
解决方案 »
- Jquery跨域解决方法!急急急急急急急急急急急急急急急急急急急急急
- 关于connect pool!
- 要写一个校园应用,学校的图书借阅信息和教室上课信息应该怎样获取?求提供思路
- Rediect到同一地址,内容不刷新,怎么回事儿?
- 一个非常简单的小问题:如何用一个表格显示带复选框的歌手列表?
- 基于b/s的视频监控系统开发
- lion说Asp.Net Forums V2中“大量应用缓存以提升系统的性能和浏览速度”,请教大家,体现在哪里?
- 高手解决
- 我下载了FreeTextBox1.62,为什么插入表格时提示没有找到FTB.inserttable.aspx
- javascript怎么调用ActiveX控件的方法?
- 有人做过自定义表单的项目么?我的思路,不知道对不对.请高手指教
- 这些圆角的菜单按钮是怎么实现的
不喜欢用sqldatasource,和objectdatasource,感觉还不如手写代码,还灵活
假如output是这样写的:
@aa int output
as
set @aa = 1可以换成这种方式就可以绑定了as
DECLARE @aa int
set @aa = 1select @aa as aa
GO这样列名就为aa,多加几个也是一样的,
as
DECLARE @aa int
DECLARE @bb int
set @aa = 1select @aa as aa,@bb as bb
GO
sqlparameters("@*").direction=ParameterDirection.Output
用sqlparameters("@*").value来获值所以现在还不能结贴,呵呵.
这是sqldatasource的代码
-------------------
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="**" SelectCommand="testreturn" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:Parameter DefaultValue="0" Direction="InputOutput" Name="test" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
--------------------
用以下代码在sqldatasource的selected事件中提取返回的参数的值:
----------
Dim param As SqlParameter = CType(e.Command.Parameters("@test"), SqlParameter)
HiddenField1.Value = param.Value.ToString//缓存取到的值
-----------把取到的值绑定到gridview上的代码
--------------
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
For Each gvr As GridViewRow In GridView1.Rows
Dim a As Label
a = CType(gvr.FindControl("test2"), Label)
If Not a Is System.DBNull.Value Then
Dim b As Label = gvr.Cells(3).FindControl("test2")
b.Text = HiddenField1.Value
End If
Next
End Sub
------------------结果是可以达到目的,但觉得这样似乎很麻烦.
不知道有没更简单的办法,就象
在<itemtemplate>
<asp:label text='<%# eval("**")%>' /> //类似的调用手法
</itemtemplate>
点出来的
是一个select
先要配值数据库
然后把一个属性改成DATAREARDER
默认为dataset
要实现IDataReader dr = (IDataReader)(SqlDataSource1.Select(DataSourceSelectArguments.Empty) as IDataReader);
IDataReader 接口
我照着你的提示做了以下操作
修改了sqldatasource的datasourcemode属性把原来的dataset改成了datareader
按你的提示
IDataReader dr = (IDataReader)(SqlDataSource1.Select(DataSourceSelectArguments.Empty) as IDataReader);
我在page-load事件(不知道是不在这里写)中写了以下代码
----------
Dim dr As IDataReader = CType(SqlDataSource1.Select(DataSourceSelectArguments.Empty), IDataReader)
GridView2.DataSource = dr
GridView2.DataBind()
-----------------
结果是正常显示返回的数据集合,但是用这种动态编程的方法,好象没考虑到怎么把存储过程返回的参数显示出来,
不知道是否漏了些什么,还是根本就不是这样实现的
嘿嘿,望在指点下。