我在执行存储过程时用 select @id 把主键值去出来了
但是我在后台想看到这个主键值,代码该怎么写啊因为有一个界面要调用我的主键值,不需要在去数据库操作,直接就能去到值小女子在这谢谢各位大侠了

解决方案 »

  1.   

    你是用的asp。net么?   那样的话  你可以把执行存储过程返回的值 保存到session里面
      

  2.   

    我执行这段存储过程
    set xact_abort on begin TRANSACTION declare @id int exec P_ItemInsert '6666','2','2010-11-18','N','#000000','2','天',null,'1',@id output insert into Sys_ItemRole(Role_Name,Item_Id) values('',@id)  commit
    select @id
    用select @id 把主键值去出来了,但是我想在后台代码中显示取到这个值,因为另一个界面要调用这个值,代码该怎么写
      

  3.   

    session["id"]= 你取出的值
      然后你要调用的时候就  session["id"].tostring    大概是这个样子  我也是新手  很久没弄这个了
      

  4.   

    首先,你这个存储过程是不是执行完以后会返回一个值,
    2,你在哪个方法中调用的这个存储过程,你就要在方法中申明一个参数来接收这个值,out一个参数就ok
    然后,你在那个页面需要调用这个方法,也在那个方法中申明out的参数,再用一个变量来接收它就可以了
      

  5.   

    LZ的意思是用ADO.net下调用数据库的存储过程,并显示值IdPublic String GetSelectData()
    {
      SqlConnection PubsConn = new SqlConnection("你的连接字符串");
      SqlCommand testCMD = new SqlCommand("你的存储过程名称", PubsConn);
      testCMD.CommandType = CommandType.StoredProcedure;
      SqlParameter ReturnID = testCMD.Parameters.Add("@Id",SqlDbType.Int);
      ReturnID.Direction = ParameterDirection.Output ;
      PubsConn.Open();
      SqlDataReader myReader = testCMD.ExecuteReader();
      while (myReader.Read()) 
       {
         Console.WriteLine ("{0}", myReader.GetString (2));
       };
      myReader.Close() ;
      return ReturnID.Value;
    }
    Console.WriteLine ("{0}", GetSelectData())//显示这个获取出来的ID
      

  6.   

    加上命名空间:
    using System.Data.SqlClient;
      

  7.   


    借用楼上的代码  我想楼主应该是要这样的东西Public String GetSelectData()
    {
      SqlConnection PubsConn = new SqlConnection("你的连接字符串");
      SqlCommand testCMD = new SqlCommand("你的存储过程名称", PubsConn);
      testCMD.CommandType = CommandType.StoredProcedure;
      SqlParameter ReturnID = testCMD.Parameters.Add("@Id",SqlDbType.Int);
      ReturnID.Direction = ParameterDirection.Output ;
      PubsConn.Open();
      SqlDataReader myReader = testCMD.ExecuteReader();
      while (myReader.Read()) 
       {
         Session["id"] = myReader.getstring();
       };
      myReader.Close() ;
      return ReturnID.Value;
    }
    另一个页面的调用方法就是  int i = session["id"]
      

  8.   

    关键我的存储过程是在ItemAdd.aspx.cs中调用的
    我是想在ItemAdd.aspx.cs 取到值
      

  9.   

    你用的是不是三层架构  有没有model层?    你要在aspx里面通过调用那个方法  把ID的值保存到session   然后你就可以在不同的页面调用session   也就解决了你的问题
      

  10.   


    不是很理解,大概说一下楼主是不是在一个页面获取了Id,现在先传输到另外的一个页面?如果这样的话,大概有这几种方式。
    1.页面传值。比如在ItemAdd.aspx.cs获取了Id需要传输到ItemEdit.aspx.cs。可以通过get方式将值传输过去,比如在cs中进行页面跳转.比如:            Response.Redirect("ItemEdit.aspx?id="+id),然后通过Requeest.Query["id"]接受该值
    2.通过Session传值。楼上已经说过l