快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

如何在aspx中得到在存储过程中的的数值(兼答jspfuns的问题)

这里的存储过程是在SQL Server 下的存储过程,由于目前豆腐没有使用存储过程,所以豆腐在举例子的时候
使用了SQL2K,估计在Oracle下应该也是相同的,欢迎大家 和豆腐一起来探讨这个问题
我们知道在存储过程中有个被称做output 的参数,他可以在不同的存储过程之中互相的传递参数,在使用output 的时候
要注重下面的情况

OUTPUT 变量必须在创建表和使用该变量时都进行定义。参数名和变量名不一定要匹配,不过数据类型和参数位置必须匹配
我们创建一个最简朴的存储过程
CREATE PROCEDURE test
(@subject Varchar(15) Output)
AS
select @subject=\\\'豆腐制作 都是精品\\\'
GO
可是如何取得回掉的参数呢?白思不得其解,后来终于在SQL AnaLyzer 上得到了启发,
DECLARE @aa Varchar(10)
execute test @aa output
select aa=@aa
根据这个,我们可在Asp.Net中利用ADO+的多语句处理功能来实现我们的设想,最终通过SQLDataReader 犹如
Select 语句相同来得到输出,完整的程序如下。

<%@ Import Namespace=\"System.IO\" %>
<%@ Import Namespace=\"System.Data\" %>
<%@ Import Namespace=\"System.Data.SQL\" %>
<script language=\"C#\" runat=server>
protected void Page_Load(Object Src, EventArgs E){
SQLDataReader dbRead;
SQLCommand dbComm;
String strSQL;
String strConn;
SQLConnection conn;
Hashtable Cfg=new Hashtable();
Cfg = (Hashtable)Context.GetConfig(\"appsettings\");
strConn=Cfg[\"Conn\"].ToString();
conn = new SQLConnection(strConn);
strSQL=\"DECLARE @aa Varchar(10)/nexecute test @aa output/nselect aa=@aa\";
dbComm = new SQLCommand(strSQL, conn);
dbComm.ActiveConnection.Open();
dbComm.Execute(out dbRead);
dbRead.Read();
showmsg.Text=dbRead[\"aa\"].ToString();
}
</script>
<html>
<head>
<title>测试存储过程</title>
</head>
<body>
<asp:Label id=showmsg runat=server />
</body>
</html>
其实,豆腐在实际的应用中一般是很少使用output 参数的,豆腐一般都是这样使用的:
存储过程 的内容如下:
CREATE PROCEDURE test
AS
select @subject=\\\'豆腐制作 都是精品\\\'
select aa=@subject
GO
就是在 存储过程 的最后依据利用 Select 让存储过程返回一个记录集合,然后我们就可以把这个存储过程
看作是一个 select 语句来处理了,这样下来,asp.Net 的SQL 语句就变成了
strSQL=\"test\";
其他的内容都变化,相同可以得到一样的效果


返回类别: 教程
上一教程: 顺序求出c(n,r)的排列组合
下一教程: datagrid的正反双向排序

您可以阅读与"如何在aspx中得到在存储过程中的的数值(兼答jspfuns的问题)"相关的教程:
· ASP中是如何使用存储过程的
· .Net 下对SqlServer2000中的存储过程的调用
· ASP.NET中如何调用存储过程
· .Net 下对SqlServer2000中的存储过程的调用
· 在.NET中调用存储过程
    微笑服务 优质保证 索取样品