例如在存储过程定义了一个
@temp='1',
我想在c#代码中获得这个'1'(asp.net),应该怎么写!?我已经查了好多资料~没有找到解决办法~谢谢各位赐教!!

解决方案 »

  1.   

    http://www.baidu.com/s?wd=C%23+%B4%E6%B4%A2%B9%FD%B3%CC%B7%B5%BB%D8%D6%B5&cl=3
      

  2.   

    看这个;http://www.cnblogs.com/302soft/archive/2007/01/09/615667.html
      

  3.   

    有return 和 output两种方式.返回值的话
    System.Data.SqlClient.SqlParameter p = new System.Data.SqlClient.SqlParameter("@RETURN_VALUE", System.Data.SqlDbType.Int, 4);
    p.Direction = System.Data.ParameterDirection.ReturnValue;存储过程中大概会写:return @temp--------------------------OUTPUT参数的话
    System.Data.SqlClient.SqlParameter p = new System.Data.SqlClient.SqlParameter("@temp", System.Data.SqlDbType.Int, 4);
    p.Direction = System.Data.ParameterDirection.Output;存储过程中大概会写:@temp int output-------------------------最后ExecuteNonQuery()以后取p.Value
      

  4.   

    对了,还有一个,如果存储过程中是select @temp的方式.这样的话,C#中使用object val = cmd.ExecuteScalar();val就是返回的temp的值喽.根据类型再转换就可以了.
      

  5.   

    y7967()7457614y() ( ) 信誉:98    Blog 
    讲的很好很全了:)
      

  6.   

    另外注意一点,如果你同时使用了DataReader返回数据集,那么在DataReader关闭之前,你是取不到返回值的.
      

  7.   

    看来我要写的详细点了~值还是错的~存储过程如下:
    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    go
    --exec StoreExchangesDetailEdit '1','2007-01-01',1,'1','1',1,1ALTER PROCEDURE [dbo].[StoreExchangesDetailEdit]
             @temp int output
    AS
    BEGIN
    SET NOCOUNT ON; return @tempEND
      

  8.   

    airfish108() ( ) 信誉:100    Blog  2007-3-14 16:38:50  得分: 0  
     
     
       
    看来我要写的详细点了~值还是错的~存储过程如下:
    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    go
    --exec StoreExchangesDetailEdit '1','2007-01-01',1,'1','1',1,1ALTER PROCEDURE [dbo].[StoreExchangesDetailEdit]
             @temp int output
    AS
    BEGIN
    SET NOCOUNT ON;return @tempEND----------你这儿没有看见对@temp的赋值。
      

  9.   

    如果你要return ,那不必在前边定义: @temp int output可以这样:ALTER PROCEDURE [dbo].[StoreExchangesDetailEdit]
    AS
    BEGINdeclare @temp int --相当于临时变量
    set @temp = 1
    return @tempEND如果要使用output,那就不必要return,如:
    ALTER PROCEDURE [dbo].[StoreExchangesDetailEdit]
    @temp int output
    AS
    BEGINset @temp = 1END
      

  10.   

    --方法一
    create procedure InsertCustomer
    @customerName varchar(100)
    as
    declare @Return int
    insert into Customer values(@customerName)
    set @Return=@@identity
    return @Return
    GO--方法二
    Create procedure InsertCustomer2
    @customerName varchar(100),
    @Return int output
    as
    insert into Customer values(@customerName)
    set @Return=@@identity
    return
    go-------------------CS代码-----------------------
    //方法一
            SqlConnection con = new SqlConnection("server=.;database=master;uid=sa;pwd=;");
            SqlCommand cmd = new SqlCommand("InsertCustomer", con);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@customerName",SqlDbType.VarChar,100).Value="wangqian";
            cmd.Parameters.Add("@Return",SqlDbType.Int);
            cmd.Parameters["@Return"].Direction = ParameterDirection.ReturnValue;
            con.Open();
            cmd.ExecuteNonQuery();
            con.Close();
            //方法二
            SqlConnection con = new SqlConnection("server=.;database=master;uid=sa;pwd=;");
            SqlCommand cmd = new SqlCommand("InsertCustomer2", con);//InsertCustomer2
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@customerName", SqlDbType.VarChar, 100).Value = "wangqian";
            cmd.Parameters.Add("@Return", SqlDbType.Int);
            cmd.Parameters["@Return"].Direction = ParameterDirection.Output;//output
            con.Open();
            cmd.ExecuteNonQuery();
            con.Close();
      

  11.   

    其实我就是这么写的~
    ALTER PROCEDURE [dbo].[StoreExchangesDetailEdit]
    AS
    BEGINdeclare @temp int --相当于临时变量
    set @temp = 1
    return @tempEND
    我刚要整理发上来~同事就给我点发送了~郁闷~
    但是我在程序里这样写
    System.Data.SqlClient.SqlParameter p = new System.Data.SqlClient.SqlParameter("@RETURN_VALUE", System.Data.SqlDbType.Int, 4);
    p.Direction = System.Data.ParameterDirection.ReturnValue;
    Response.Write((p.value).ToString())
    但输出来是‘0’,真是晕了~帮忙说一下应该代码怎么写~晚上不管问题解决没解决完我都给你结贴了~谢谢~主要是突然一个急得项目,这个得放放了~有问题再找你~谢谢!
      

  12.   

    用@aa做参数
    之后用Parameter.add方法替代~
      

  13.   

    借宝地问一个:
    如果PROC是
    ---------
    create proc Proc_name as
    select 'xx'
    select 'YY'
    select 'ZZ'
    select * from table /*有两条记录以上*/
    --------
    这种情况如何取到 这几个值呢?
      

  14.   

    北京招聘
    Asp.net开发工程师
    1、计算机专业本科以上学历,有能力者不限制;
    2、精通ASP.NET、C#、MSSQLServer等技术及相关开发工具;
    3、熟练掌握UML建模,至少熟悉一种建模软件; 
    4、熟悉数据库操作,有面向对象基础。熟悉三层开发构架;
    5、应聘者请附上曾开发的项目实例或说明;
    6、有较强的合作、沟通能力,具有团队精神与团队合作经验待遇优厚,根据能力定薪金,具体待遇面议,保证不低于同行业水平.
    Email:[email protected]
    工作地点:
    北京望京科技园利泽中园或北京电子城科技园区 [靠近望京和酒仙桥地区]
    公司简介:
    北京澳荷瑞科技有限公司位于北京望京科技创业园内。作为一家年轻的留学生人员企业,澳荷瑞公司充满着年轻的活力和国际化的背景。澳荷瑞公司将以科技信息交流和服务,以及科技软件和网络研发为主要业务,致力于发展以网络为平台的房屋信息服务(http://www.SinoHousing.com) 和WTO规则方面的相关软件开发。公司采用西方以人为本的管理模式,将十分重视员工的发展。 
    公司由留欧归国人员创办,所提供的工作十分富有挑战性,工作前景也十分看好。公司非常欢迎愿意接受挑战的,能够吃苦耐劳的年轻人一起工作。本公司正处于创业阶段,公司规模不大,但公司有自己的独特发展思路和模式。所以对于马上想去大型公司工作的人才止步。公司很年轻,需要靠大家一起努力。
     有意者请将个人简历发至:[email protected]. 我公司将以最快的速度回复符合条件的潜在人选。
      

  15.   

    copy hbxtlhx(平民百姓) 
    ------------------------------------------------------------
    y7967()7457614y() ( ) 信誉:98    Blog 
    讲的很好很全了:)
      

  16.   

    请教各位高手,这个问题能解决吗?http://community.csdn.net/Expert/topic/5397/5397555.xml?temp=.3033563