首页 >> 读书频道 >> 电脑 >> 带输入参数
 
· 有返回值
· 存储过程
· 删除记录
· ADO.NET数据库基本
· 更复杂的Read
· 使用DataSets
· 测试程序
· ADO.NET访问数据库
· 数据库编程 Relat
· 微软.NET战略和ASP
· ASP.NET简介
· 如何将 .flc 动画档
 
· 电视剧《刁蛮公主》下载和
· 美容养颜手册
· 加油金顺剧情分集介绍完整
· 红楼梦:120回全本[清
· 素质教育在美国
· 全唐诗卷四十六
· 韩剧《布拉格恋人》剧情介
· 夜航船[作者:明·张岱]
· 局外人[作者:韩·可爱淘
· 现场流行病学
· 源氏物语[日本:紫式部]
· 武林寓言故事
 
· (出租)中动商场部分及写
· (出租)中动动漫基地&#
· 喜剧学院
· 《善德女王》剧情介绍
· 魔女18号 剧情
· 丑女无敌剧情介绍
· 魔女幼熙剧情介绍
· 龙游天下剧情介绍
· 震撼世界的七日剧情介绍
· 静静的白桦林剧情介绍
· 心情日记—老公今天我想对
· 旗舰剧情介绍
欢迎来到月影社区!如果您觉得这里不错,请推荐给您的朋友们。月影社区:http://wf66.com/

带输入参数


查看有无更新版本

关键字:ASP.NET 2006-9-20

 

同样的,我们举一个例子来说明怎样用微软的.NET技术来讲述怎么样通过程序来给存储过程传递参数,并返回程序的结果。
首先,我们在数据库NetBBS中建立一个带有输入参数的存储过程,代码如下:

create procedure pro_inputbook
        @fid varchar(4)
as
select [id] as 'ID',[name] as '论坛名称',[notes] as '公告',[fatherid] as '父ID',status as '使用状态' from forum where [ID]=@fid
      
存储过程的名字为pro_inputbook,id和name字段用“[]“括号括起来,只要是这两个字段是 SQL Server中的关键字段。

我们创建一个aspx文件来调用我们的存储过程,下面是我们的文件的代码:

(code\database\StoreProWithInPara.aspx)

<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SQL" %>

<html>
<script language="VB" runat="server">
    '在页面装载时调用的方法
    Sub Page_Load(Src As Object, E As EventArgs)
 '创建数据集
    Dim DS As DataSet

 '创建数据库连接对象
    Dim IConn As SQLConnection

 '常见命令集对象
    Dim IComm As SQLDataSetCommand

 '给数据库连接对象咐值
IConn=New SQLConnection("server=localhost;uid=NetBBS;pwd=;database=NETBBS")

 '调用存储过程
    IComm = New SQLDataSetCommand("pro_inputbook", IConn)

    '创建命令集为存储过程!
    IComm.SelectCommand.CommandType = CommandType.StoredProcedure

 '向数据库中传递参数
IComm.SelectCommand.Parameters.Add(New SQLParameter("@fid",
SQLDataType.NVarChar, 15))
 
 '获得并传递参数
   IComm.SelectCommand.Parameters("@fid").Value = Request.QueryString("forumid")

 '填充数据集
     DS = new DataSet()
     IComm.FillDataSet(DS, "forum")
 
  '进行数据绑定
     IDG.DataSource=DS.Tables("forum").DefaultView
     IDG.DataBind()

 End Sub

</script>

<body style="font: 10pt verdana">
  <br><br><br>
 <center>
   有输入参数的存储过程的输出结果: <br><br><br>
 <ASP:DataGrid id="IDG" runat="server"
    Width="650"
    BackColor="#ccccff"
    BorderColor="black"
    ShowFooter="false"
    CellPadding=3
    CellSpacing="0"
    Font-Name="Verdana"
    Font-Size="8pt"
    HeaderStyle-BackColor="#aaaadd"
    MaintainState="false"
  />
</center>

</body>
</html>

 


 

 我们给程序传递的参数为1,通过连接中传递参数的方式来传递。我们通过

 '获得并传递参数
IComm.SelectCommand.Parameters("@fid").Value = Request.QueryString("forumid")
这个语句来获得从连接中传来的参数(forumid=1),并通过

 '向数据库中传递参数
IComm.SelectCommand.Parameters.Add(New SQLParameter("@fid",
SQLDataType.NVarChar, 15))

这个语句来向存储过程pro_inputbook传递参数,存储过程在接收到参数1后,即把ID=1的数据选择出来,即为我们所显示的结果。

 

3.4.4.4带输出参数
3.4.4.4.1存储过程

首先我们创建一个带输出参数的存储过程:

create procedure pro_outpara
 @count int output
as
    select @count= (select count(*) from topic)

这是一个很简单的存储过程,它的作用就是计算出所有的文章数出来。

3.4.4.4.1接收程序

正向我们上面说的调用存储过程一样,我们创建的命令集诗一样的:
(code\database\StoreProWithOutPara.aspx)

IComm = New SQLDataSetCommand("pro_outpara", IConn)
IComm.SelectCommand.CommandType = CommandType.StoredProcedure

创建命令集为存储过程方式,在创建数据传送的方式时,就跟上面的不一样了,

IComm.SelectCommand.Parameters.Add(New SQLParameter("@title", SQLDataType.Int)) IComm.SelectCommand.Parameters("@title").Direction = ParameterDirection.Output

最后用 System.Math.Ceil(IComm.SelectCommand.Parameters("@count").Value)来获得我们的参数的值,具体的程序如下:


<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SQL" %>

<html>
<script language="VB" runat="server">

    Sub Page_Load(Src As Object, E As EventArgs)
   
 '创建数据连接对象
        Dim IConn As SQLConnection
 '创建命令集对象
        Dim IComm As SQLDataSetCommand

        '创建数据集
        Dim DS As DataSet

        IConn = New
SQLConnection("server=localhost;uid=sa;pwd=;database=NETBBS")
        IComm = New SQLDataSetCommand("pro_outpara", IConn)

        '创建命令集为存储过程!

        IComm.SelectCommand.CommandType = CommandType.StoredProcedure
 
 '获得并传入参数:
        IComm.SelectCommand.Parameters.Add(New SQLParameter("@count",
SQLDataType.Int))
        IComm.SelectCommand.Parameters("@count").Direction =
ParameterDirection.Output

 '填充数据集
        DS = new DataSet()
        IComm.FillDataSet(DS, "topic")
 
 '数据绑定
        'IDG.DataSource=DS.Tables("topic").DefaultView
        'IDG.DataBind()
       
        If Not Page.IsPostBack Then
   TotalPages.Text =
System.Math.Ceil(IComm.SelectCommand.Parameters("@count").Value)
  End If
    End Sub

</script>

<body bgcolor="#ccccff" style="font: 10pt verdana">
  <br><br><br>
 <center>
   .NET->有输出参数的存储过程的输出结果: <br><br><br>
  
 
   文章总数:<asp:Label id="TotalPages"  runat="server" />
 </center>

</body>
</html>

带输入参数

[ 1 ]
带输入参数 num

打印本页 关闭

关于我们版权声明本站导航友情连结作品演示 TOP↑