.NET用使用存储过程获取输出参数的代码示例!
2009-07-04 17:29
651 查看
关键字: asp.net, .net, 存储过程
在网上也找到许多关于.NET中使用存储过程获取输出参数的代码,但怎么看怎么都是记不住,还是自己亲自实践一遍后再记录下来,这样才能记得住,必竟自己做过的东西是比较难忘记的!!!
步骤如下:
①建立数据库logintest,在数据库中建立表User.
向建立的表中添加几条测试数据.
②在数据库中建立存储过程:
Sql代码
USE [logintest]
GO
-- =============================================
-- Author: 牛腩
-- Create date: 2008-10-21 14:01
-- Description: 通过传入的uid获取用户姓名
-- =============================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[GetUNameById]
@uid int,
@name varchar(50) output
AS
BEGIN
select @name=uname from [User] where uid=@uid
END
③在VS中建立一个测试页面ProcTest.aspx,在ProcTest.aspx.cs中导入命名空间
C#代码
using System.Data;
using System.Data.SqlClient;
④在Page_Load方法里写入如下代码:
C#代码
// 建立连接字符串,在正式项目中可放在web.config中
string connStr = "server=niunan//sqlexpress;uid=sa;pwd=123456;database=logintest";
// 连接数据库
SqlConnection conn = new SqlConnection(connStr);
try
{
// 打开数据库连接
conn.Open();
// 创建用于执行数据库操作的命令对象, GetUNameById为存储过程名称
SqlCommand cmd = new SqlCommand("GetUNameById", conn);
// 设置执行命令的方式为存储过程
cmd.CommandType = CommandType.StoredProcedure;
// 向命令对象添加存储过程所需要的参数
cmd.Parameters.Add("@uid", SqlDbType.Int);
// 设置要传入到存储过程的参数值
cmd.Parameters["@uid"].Value = 2;
// 添加存储过程中的输出参数,如果是字符型的必须定义长度
cmd.Parameters.Add("@name", SqlDbType.VarChar, 50);
// 设置参数为output输出参数
cmd.Parameters["@name"].Direction = ParameterDirection.Output;
// 执行存储过程
cmd.ExecuteReader();
// 获取执行存储过程后的输出参数
string name = cmd.Parameters["@name"].Value.ToString();
Response.Write(name);
}
catch (Exception ex)
{
Response.Write(ex.Message);
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
finally
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
运行ASPX页面,则能够看到执行存储过程后返回的结果!
需要注意的是如果输出参数是varchar类型的话则必须定义长度,否则会出错,如果输出参数是数字型的话就不必定义长度了!
下面是完整的ProcTest.aspx.cs的源码:
C#代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
public partial class ProcTest : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// 建立连接字符串,在正式项目中可放在web.config中
string connStr = "server=niunan//sqlexpress;uid=sa;pwd=123456;database=logintest";
// 连接数据库
SqlConnection conn = new SqlConnection(connStr);
try
{
// 打开数据库连接
conn.Open();
// 创建用于执行数据库操作的命令对象, GetUNameById为存储过程名称
SqlCommand cmd = new SqlCommand("GetUNameById", conn);
// 设置执行命令的方式为存储过程
cmd.CommandType = CommandType.StoredProcedure;
// 向命令对象添加存储过程所需要的参数
cmd.Parameters.Add("@uid", SqlDbType.Int);
// 设置要传入到存储过程的参数值
cmd.Parameters["@uid"].Value = 2;
// 添加存储过程中的输出参数
cmd.Parameters.Add("@name", SqlDbType.VarChar, 50);
// 设置参数为output输出参数
cmd.Parameters["@name"].Direction = ParameterDirection.Output;
// 执行存储过程
cmd.ExecuteReader();
// 获取执行存储过程后的输出参数
string name = cmd.Parameters["@name"].Value.ToString();
Response.Write(name);
}
catch (Exception ex)
{
Response.Write(ex.Message);
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
finally
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
}
}
在网上也找到许多关于.NET中使用存储过程获取输出参数的代码,但怎么看怎么都是记不住,还是自己亲自实践一遍后再记录下来,这样才能记得住,必竟自己做过的东西是比较难忘记的!!!
步骤如下:
①建立数据库logintest,在数据库中建立表User.
向建立的表中添加几条测试数据.
②在数据库中建立存储过程:
Sql代码
USE [logintest]
GO
-- =============================================
-- Author: 牛腩
-- Create date: 2008-10-21 14:01
-- Description: 通过传入的uid获取用户姓名
-- =============================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[GetUNameById]
@uid int,
@name varchar(50) output
AS
BEGIN
select @name=uname from [User] where uid=@uid
END
USE [logintest] GO -- ============================================= -- Author: 牛腩 -- Create date: 2008-10-21 14:01 -- Description: 通过传入的uid获取用户姓名 -- ============================================= SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[GetUNameById] @uid int, @name varchar(50) output AS BEGIN select @name=uname from [User] where uid=@uid END
③在VS中建立一个测试页面ProcTest.aspx,在ProcTest.aspx.cs中导入命名空间
C#代码
using System.Data;
using System.Data.SqlClient;
using System.Data; using System.Data.SqlClient;
④在Page_Load方法里写入如下代码:
C#代码
// 建立连接字符串,在正式项目中可放在web.config中
string connStr = "server=niunan//sqlexpress;uid=sa;pwd=123456;database=logintest";
// 连接数据库
SqlConnection conn = new SqlConnection(connStr);
try
{
// 打开数据库连接
conn.Open();
// 创建用于执行数据库操作的命令对象, GetUNameById为存储过程名称
SqlCommand cmd = new SqlCommand("GetUNameById", conn);
// 设置执行命令的方式为存储过程
cmd.CommandType = CommandType.StoredProcedure;
// 向命令对象添加存储过程所需要的参数
cmd.Parameters.Add("@uid", SqlDbType.Int);
// 设置要传入到存储过程的参数值
cmd.Parameters["@uid"].Value = 2;
// 添加存储过程中的输出参数,如果是字符型的必须定义长度
cmd.Parameters.Add("@name", SqlDbType.VarChar, 50);
// 设置参数为output输出参数
cmd.Parameters["@name"].Direction = ParameterDirection.Output;
// 执行存储过程
cmd.ExecuteReader();
// 获取执行存储过程后的输出参数
string name = cmd.Parameters["@name"].Value.ToString();
Response.Write(name);
}
catch (Exception ex)
{
Response.Write(ex.Message);
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
finally
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
// 建立连接字符串,在正式项目中可放在web.config中 string connStr = "server=niunan//sqlexpress;uid=sa;pwd=123456;database=logintest"; // 连接数据库 SqlConnection conn = new SqlConnection(connStr); try { // 打开数据库连接 conn.Open(); // 创建用于执行数据库操作的命令对象, GetUNameById为存储过程名称 SqlCommand cmd = new SqlCommand("GetUNameById", conn); // 设置执行命令的方式为存储过程 cmd.CommandType = CommandType.StoredProcedure; // 向命令对象添加存储过程所需要的参数 cmd.Parameters.Add("@uid", SqlDbType.Int); // 设置要传入到存储过程的参数值 cmd.Parameters["@uid"].Value = 2; // 添加存储过程中的输出参数,如果是字符型的必须定义长度 cmd.Parameters.Add("@name", SqlDbType.VarChar, 50); // 设置参数为output输出参数 cmd.Parameters["@name"].Direction = ParameterDirection.Output; // 执行存储过程 cmd.ExecuteReader(); // 获取执行存储过程后的输出参数 string name = cmd.Parameters["@name"].Value.ToString(); Response.Write(name); } catch (Exception ex) { Response.Write(ex.Message); if (conn.State == ConnectionState.Open) { conn.Close(); } } finally { if (conn.State == ConnectionState.Open) { conn.Close(); } }
运行ASPX页面,则能够看到执行存储过程后返回的结果!
需要注意的是如果输出参数是varchar类型的话则必须定义长度,否则会出错,如果输出参数是数字型的话就不必定义长度了!
下面是完整的ProcTest.aspx.cs的源码:
C#代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
public partial class ProcTest : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// 建立连接字符串,在正式项目中可放在web.config中
string connStr = "server=niunan//sqlexpress;uid=sa;pwd=123456;database=logintest";
// 连接数据库
SqlConnection conn = new SqlConnection(connStr);
try
{
// 打开数据库连接
conn.Open();
// 创建用于执行数据库操作的命令对象, GetUNameById为存储过程名称
SqlCommand cmd = new SqlCommand("GetUNameById", conn);
// 设置执行命令的方式为存储过程
cmd.CommandType = CommandType.StoredProcedure;
// 向命令对象添加存储过程所需要的参数
cmd.Parameters.Add("@uid", SqlDbType.Int);
// 设置要传入到存储过程的参数值
cmd.Parameters["@uid"].Value = 2;
// 添加存储过程中的输出参数
cmd.Parameters.Add("@name", SqlDbType.VarChar, 50);
// 设置参数为output输出参数
cmd.Parameters["@name"].Direction = ParameterDirection.Output;
// 执行存储过程
cmd.ExecuteReader();
// 获取执行存储过程后的输出参数
string name = cmd.Parameters["@name"].Value.ToString();
Response.Write(name);
}
catch (Exception ex)
{
Response.Write(ex.Message);
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
finally
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
}
}
相关文章推荐
- .NET用使用存储过程获取输出参数的代码示例
- .NET用使用存储过程获取输出参数的代码示例!
- NET用使用存储过程获取输出参数的代码示例!
- SqlClient使用存储过程并获取输出参数的指
- django 使用 request 获取浏览器发送的参数示例代码
- 数据库操作_连接SQL Server数据库示例;连接ACCESS数据库;连接到 Oracle 数据库示例;SqlCommand 执行SQL命令示例;SqlDataReader 读取数据示例;使用DataAdapter填充数据到DataSet;使用DataTable存储数据库表;将数据库数据填充到 XML 文件;10 使用带输入参数的存储过程;11 使用带输入、输出参数的存储过程示;12 获得数据库中表的数目和名称;13 保存图片到SQL Server数据库示例;14 获得插入记录标识号;Exce
- [译]DbContext API中使用SqlQuery和ExecuteSqlCommand获取存储过程的输入输出参数
- jQuery中使用Ajax获取JSON格式数据示例代码
- 编写一个函数func(),将此函数的输入参数(int型)逆序输出显示,如54321 –> 12345,要求使用递归,并且函数体代码不超过8行
- 使用C#代码获取存储过程返回值
- 使用C#调用存储过程,用函数合理组织代码,使程序更加的清晰(示例)
- 使用C#调用存储过程,用函数合理组织代码,使程序更加的清晰(示例)
- C#实现使用HTTP管道的.NET远程代码示例
- .NET中使用ORACLE函数和过程并输出参数(1)
- 使用带输入输出参数的存储过程
- [代码]如何使用带参数的存储过程(LINQ to SQL)
- 使用SqlDataSource调用带参数存储过程(获取不到数据?)
- Asp.Net中的获取Web.config中设置的参数!(前后台的代码示例)
- .NET获取当前网址url的各种属性(文件名、参数、域名 等)的代码
- 【Linux C代码分享二】UDP Socket示例程序:使用fgets函数获取屏幕输入