.net 中如何使用存储过程output和return值
2010-02-22 16:09
260 查看
数据库中使用output值和return值:
-------------------------------------------------------
--数获存储过程中的OUTPUT参数和返回值获取
-------------------------------------------------------
CREATE PROCEDURE Proc_Test;1
@INPUT int,
@OUTPUT int output
AS
BEGIN
SET NOCOUNT ON;
SELECT @OUTPUT=@INPUT
RETURN @INPUT+1
END
GO
--调用output值和return返回值
DECLARE @OUT int,@RETURN int
EXEC @RETURN=Proc_Test;1
0,
@OUT output
SELECT [返回值]=@RETURN,[OUTPUT值]=@OUT
返回值 OUTPUT值
----------- -----------
1 0
-----------------------------------------------------
-- SP_EXECUTESQL中的OUTPUT参数获取
-----------------------------------------------------
DECLARE @Para1 int,@Para2 int,@SUM int
EXECUTE SP_EXECUTESQL
N'SELECT @SUM=@Para1+@Para2 ',
N'@Para1 INT,@Para2 INT,@SUM INT OUTPUT ',
5,5,@SUM OUTPUT
SELECT [OUTPUT值]=@SUM
OUTPUT值
-----------
10
======================================================================
下面在.net下调用存储过程:
view plaincopy to clipboardprint?
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>使用存储过程</title>
<mce:style type="text/css"><!--
#form1
{
margin-left: 206px;
}
--></mce:style><style type="text/css" mce_bogus="1"> #form1
{
margin-left: 206px;
}
</style>
</head>
<body>
<form id="form1" runat="server" style="border-style: none; width: 339px;">
<div>
</div>
<asp:Label ID="Label3" runat="server" Text=" 输 入 参 数:"></asp:Label>
<asp:TextBox ID="Input" runat="server" BorderStyle="NotSet"></asp:TextBox>
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/提交.GIF"
onclick="ImageButton1_Click" style="height: 20px" />
<hr width="95%" />
<br />
<asp:Label ID="Label1" runat="server" Text="OUTPUT参数:"></asp:Label>
<asp:Label ID="Output" runat="server" BorderColor="#6600FF" BorderStyle="None"
BorderWidth="1px" Width="100px">暂无</asp:Label>
<hr width="95%" />
<br />
<asp:Label ID="Label4" runat="server" Text="RETURN返回:"></asp:Label>
<asp:Label ID="Return" runat="server" BorderColor="#6600FF" BorderWidth="1px"
Width="100px" BorderStyle="None">暂无</asp:Label>
</form>
</body>
</html>
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>使用存储过程</title>
<mce:style type="text/css"><!--
#form1
{
margin-left: 206px;
}
--></mce:style><style type="text/css" mce_bogus="1"> #form1
{
margin-left: 206px;
}
</style>
</head>
<body>
<form id="form1" runat="server" style="border-style: none; width: 339px;">
<div>
</div>
<asp:Label ID="Label3" runat="server" Text=" 输 入 参 数:"></asp:Label>
<asp:TextBox ID="Input" runat="server" BorderStyle="NotSet"></asp:TextBox>
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/提交.GIF"
onclick="ImageButton1_Click" style="height: 20px" />
<hr width="95%" />
<br />
<asp:Label ID="Label1" runat="server" Text="OUTPUT参数:"></asp:Label>
<asp:Label ID="Output" runat="server" BorderColor="#6600FF" BorderStyle="None"
BorderWidth="1px" Width="100px">暂无</asp:Label>
<hr width="95%" />
<br />
<asp:Label ID="Label4" runat="server" Text="RETURN返回:"></asp:Label>
<asp:Label ID="Return" runat="server" BorderColor="#6600FF" BorderWidth="1px"
Width="100px" BorderStyle="None">暂无</asp:Label>
</form>
</body>
</html>
view plaincopy to clipboardprint?
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
//定义数据库连接和SqlCommand对象
SqlConnection Conn=new SqlConnection(ConfigurationManager.ConnectionStrings["TestConnection"].ToString());
SqlCommand Cmd=new SqlCommand("Proc_Test;1",Conn);
Cmd.CommandType = CommandType.StoredProcedure;
//指定参数类型
SqlParameter input = Cmd.Parameters.Add("@INPUT", SqlDbType.Int);
SqlParameter output = Cmd.Parameters.Add("@OUTPUT", SqlDbType.Int);
SqlParameter return_ = Cmd.Parameters.Add("@RETURN", SqlDbType.Int);
//指定参数方向
input.Direction = ParameterDirection.Input;
output.Direction = ParameterDirection.Output;
return_.Direction = ParameterDirection.ReturnValue;
//参数赋值
if (Input.Text == "")
{
input.Value = 0;
}
else
{
input.Value = Convert.ToInt32(Input.Text);
}
//调用存储过程
Conn.Open();
Cmd.ExecuteNonQuery();
Conn.Close();
Output.Text = output.Value.ToString();//获取output值
Return.Text = return_.Value.ToString();//获取返回值
}
-------------------------------------------------------
--数获存储过程中的OUTPUT参数和返回值获取
-------------------------------------------------------
CREATE PROCEDURE Proc_Test;1
@INPUT int,
@OUTPUT int output
AS
BEGIN
SET NOCOUNT ON;
SELECT @OUTPUT=@INPUT
RETURN @INPUT+1
END
GO
--调用output值和return返回值
DECLARE @OUT int,@RETURN int
EXEC @RETURN=Proc_Test;1
0,
@OUT output
SELECT [返回值]=@RETURN,[OUTPUT值]=@OUT
返回值 OUTPUT值
----------- -----------
1 0
-----------------------------------------------------
-- SP_EXECUTESQL中的OUTPUT参数获取
-----------------------------------------------------
DECLARE @Para1 int,@Para2 int,@SUM int
EXECUTE SP_EXECUTESQL
N'SELECT @SUM=@Para1+@Para2 ',
N'@Para1 INT,@Para2 INT,@SUM INT OUTPUT ',
5,5,@SUM OUTPUT
SELECT [OUTPUT值]=@SUM
OUTPUT值
-----------
10
======================================================================
下面在.net下调用存储过程:
view plaincopy to clipboardprint?
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>使用存储过程</title>
<mce:style type="text/css"><!--
#form1
{
margin-left: 206px;
}
--></mce:style><style type="text/css" mce_bogus="1"> #form1
{
margin-left: 206px;
}
</style>
</head>
<body>
<form id="form1" runat="server" style="border-style: none; width: 339px;">
<div>
</div>
<asp:Label ID="Label3" runat="server" Text=" 输 入 参 数:"></asp:Label>
<asp:TextBox ID="Input" runat="server" BorderStyle="NotSet"></asp:TextBox>
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/提交.GIF"
onclick="ImageButton1_Click" style="height: 20px" />
<hr width="95%" />
<br />
<asp:Label ID="Label1" runat="server" Text="OUTPUT参数:"></asp:Label>
<asp:Label ID="Output" runat="server" BorderColor="#6600FF" BorderStyle="None"
BorderWidth="1px" Width="100px">暂无</asp:Label>
<hr width="95%" />
<br />
<asp:Label ID="Label4" runat="server" Text="RETURN返回:"></asp:Label>
<asp:Label ID="Return" runat="server" BorderColor="#6600FF" BorderWidth="1px"
Width="100px" BorderStyle="None">暂无</asp:Label>
</form>
</body>
</html>
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>使用存储过程</title>
<mce:style type="text/css"><!--
#form1
{
margin-left: 206px;
}
--></mce:style><style type="text/css" mce_bogus="1"> #form1
{
margin-left: 206px;
}
</style>
</head>
<body>
<form id="form1" runat="server" style="border-style: none; width: 339px;">
<div>
</div>
<asp:Label ID="Label3" runat="server" Text=" 输 入 参 数:"></asp:Label>
<asp:TextBox ID="Input" runat="server" BorderStyle="NotSet"></asp:TextBox>
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/提交.GIF"
onclick="ImageButton1_Click" style="height: 20px" />
<hr width="95%" />
<br />
<asp:Label ID="Label1" runat="server" Text="OUTPUT参数:"></asp:Label>
<asp:Label ID="Output" runat="server" BorderColor="#6600FF" BorderStyle="None"
BorderWidth="1px" Width="100px">暂无</asp:Label>
<hr width="95%" />
<br />
<asp:Label ID="Label4" runat="server" Text="RETURN返回:"></asp:Label>
<asp:Label ID="Return" runat="server" BorderColor="#6600FF" BorderWidth="1px"
Width="100px" BorderStyle="None">暂无</asp:Label>
</form>
</body>
</html>
view plaincopy to clipboardprint?
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
//定义数据库连接和SqlCommand对象
SqlConnection Conn=new SqlConnection(ConfigurationManager.ConnectionStrings["TestConnection"].ToString());
SqlCommand Cmd=new SqlCommand("Proc_Test;1",Conn);
Cmd.CommandType = CommandType.StoredProcedure;
//指定参数类型
SqlParameter input = Cmd.Parameters.Add("@INPUT", SqlDbType.Int);
SqlParameter output = Cmd.Parameters.Add("@OUTPUT", SqlDbType.Int);
SqlParameter return_ = Cmd.Parameters.Add("@RETURN", SqlDbType.Int);
//指定参数方向
input.Direction = ParameterDirection.Input;
output.Direction = ParameterDirection.Output;
return_.Direction = ParameterDirection.ReturnValue;
//参数赋值
if (Input.Text == "")
{
input.Value = 0;
}
else
{
input.Value = Convert.ToInt32(Input.Text);
}
//调用存储过程
Conn.Open();
Cmd.ExecuteNonQuery();
Conn.Close();
Output.Text = output.Value.ToString();//获取output值
Return.Text = return_.Value.ToString();//获取返回值
}
相关文章推荐
- .net 中如何使用存储过程output和return值
- .NET下使用DataAdapter保存数据时,如何生成command语句及使用事务
- 如何使用 .net 的TreeView控件
- .net中日至框架log4net.dll如何使用
- .NET动态生成DataSet下使用DataAdapter保存数据时,如何生成command语句及使用事务(转)
- 【转】如何使用.NET配置文件(一)
- .net中如何使用cookie
- 【转】如何使用.NET配置文件(一)
- 如何使用.NET操作本地用户组和用户(2006年博客迁移)
- 在.net平台上如何创建和使用web 服务(C#)
- NUnit详细使用用法(补充)--在.NET中如何利用NUnit测试Private和Protected方法
- .net MVC中如何使用iframe实现局部刷新
- 如何 ︰ 执行批量更新和插入使用.NET 提供程序在 C#.NET OpenXML
- 如何高效使用SQLite事务 .net (C#)
- 01 如何在.NET中使用PB12.5的datawindow - 消失的DW.NET
- 使用.net如何发布web service
- 如何在.NET应用程序中使用数据库层
- 如何美化你的.net 应用程序 (皮肤使用)
- 使用 ODP.NET 访问 Oracle(.net如何访问Oracle)详解
- 如何使用.net访问Access数据库