首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 如何给获取存储过程中的output参数的值 [已结贴,结贴人:wuxiangwu]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wuxiangwu
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2008-05-23 19:40:25 楼主
    我在程序里调用了一个存储过程,这个存储过程有一个输出参数,但是怎么把这个参数的值传给程序里的变量呢?
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hbxtlhx
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-23 19:53:161楼 得分:0
    类似于如下的样子:

    SqlParameter para = new SqlParameter("@paraName", SqlDbType.Int);
    para.Direction = ParameterDirection.Output;

    command.Exe...
    object objValue = para.Value;
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • virusplayer
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-23 21:46:202楼 得分:10
    C#获取存储过程的Return返回值和Output输出参数值
    作者:dnawo 日期:2008-04-10
    字体大小: 小 中 大 
    1.获取Return返回值


    程序代码
    //存储过程
    //Create PROCEDURE MYSQL
    //    @a int,
    //    @b int
    //AS
    //    return @a + @b
    //GO
    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString());
    conn.Open();
    SqlCommand MyCommand = new SqlCommand("MYSQL", conn);
    MyCommand.CommandType = CommandType.StoredProcedure;
    MyCommand.Parameters.Add(new SqlParameter("@a", SqlDbType.Int));
    MyCommand.Parameters["@a"].Value = 10;
    MyCommand.Parameters.Add(new SqlParameter("@b", SqlDbType.Int));
    MyCommand.Parameters["@b"].Value = 20;
    MyCommand.Parameters.Add(new SqlParameter("@return", SqlDbType.Int));
    MyCommand.Parameters["@return"].Direction = ParameterDirection.ReturnValue;
    MyCommand.ExecuteNonQuery();
    Response.Write(MyCommand.Parameters["@return"].Value.ToString());

    2.获取Output输出参数值


    程序代码
    //存储过程
    //Create PROCEDURE MYSQL
    //    @a int,
    //    @b int,
    //    @c int output
    //AS
    //    Set @c = @a + @b
    //GO
    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString());
    conn.Open();
    SqlCommand MyCommand = new SqlCommand("MYSQL", conn);
    MyCommand.CommandType = CommandType.StoredProcedure;
    MyCommand.Parameters.Add(new SqlParameter("@a", SqlDbType.Int));
    MyCommand.Parameters["@a"].Value = 20;
    MyCommand.Parameters.Add(new SqlParameter("@b", SqlDbType.Int));
    MyCommand.Parameters["@b"].Value = 20;
    MyCommand.Parameters.Add(new SqlParameter("@c", SqlDbType.Int));
    MyCommand.Parameters["@c"].Direction = ParameterDirection.Output;
    MyCommand.ExecuteNonQuery();
    Response.Write(MyCommand.Parameters["@c"].Value.ToString());
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lxylf0219
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-06-03 22:40:493楼 得分:0
    declare @outpara
    exec Your_Proc @outpara output
    select @outpara

    执行上面的SQL语名,然后在程序中按获取select 结果集的方式取@output值。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • amandag
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 2

      5

    发表于:2008-06-03 22:49:594楼 得分:0
    C# code
    SqlConnection cn = new SqlConnection("server=.;uid=sa;pwd=;database=Demo"); SqlCommand cmd = new SqlCommand("你的存储过程名", cn); cmd.CommandType = CommandType.StoredProcedure; //下面添加的输出参数名字和存储过程应该一样 cmd.Parameters.Add("@outputParam", SqlDbType.Int); cmd.Parameters["@outputParam"].Direction = ParameterDirection.Output; cn.Open(); cmd.ExecuteNonQuery(); cn.Close(); object o = cmd.Parameters["@outputParam"].Value;
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • fatbear007
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-06-05 11:19:225楼 得分:0
    网友 平明百姓 和 高歌 说的都是一样的意思,都非常对,楼主你就用他们的方法!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhiguo2008
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-06-09 20:30:456楼 得分:10
    C# code
    SqlConnection cn = new SqlConnection("server=.;uid=sa;pwd=;database=Demo"); SqlCommand cmd = new SqlCommand("你的存储过程名", cn); cmd.CommandType = CommandType.StoredProcedure; //下面添加的输出参数名字和存储过程应该一样 cmd.Parameters.Add("@outputParam", SqlDbType.Int); cmd.Parameters["@outputParam"].Direction = ParameterDirection.Output; cn.Open(); cmd.ExecuteNonQuery(); cn.Close(); object o = cmd.Parameters["@outputParam"].Value;
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zjm530
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-06-09 21:14:367楼 得分:0
    object o =  cmd.Parameters["参数名"].Value;
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • richnaly
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-06-13 10:37:158楼 得分:0
    学习
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved