以下代码是我在查询分析器中执行的!没有问题,但我不知道asp.net中怎样去读取这个过程.请大家帮忙
declare @isresult smallint
set @isresult=2
execute st_uponline '1',@isresult output
print @isresult

解决方案 »

  1.   

    SqlConnection myConnection = new SqlConnection(DBConnectionString.ConnectionString);
    SqlCommand myCommand = new SqlCommand("Pr_GetUsers",myConnection);
    //調用存儲過程
    myCommand.CommandType = CommandType.StoredProcedure;
    SqlDataReader dr = null;
    try
    {
            myConnection.Open();
    }
    catch(Exception ex)
    {
        throw new MyException("10001","錯誤!",ex);
    }
    try
    {
        dr = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
    }
    catch(Exception ex)
    {
    throw new MyException("10001",ex.Message,ex);
    }return dr;這是調用存儲過程的代碼。你參考一下吧
      

  2.   

    asp.net中 借助 ado.net 来读的。
    比如说有个叫:DbDataAdapter 类 
      

  3.   

    去baidu裡搜索下“C#调用存储过程 返回值”,看看例子就明白了。http://topic.csdn.net/t/20030808/19/2125503.html這裡就有一個。不清楚你的存儲過程的參數,所以不好給你寫,你自己看看例子改改吧。
      

  4.   

    CREATE PROCEDURE [st_uponline]
    (@userid [varchar](50),
                   @isresult  smallint output)AS 
    set @isresult=2
    if not exists (select * from online where userid=@userid)
              begin
                set @isresult=1
               end
    if  exists (select *   from online where userid=@userid)
                 begin
         --return 0
                      set  @isresult=0
                   end
    return @isresult
    GO
      

  5.   

    上面是存储过程
    这是写存储过程代码,bs老是返回0 
    Public Function UpdateOnlineInfo(ByVal userid As String) As Integer
            Dim condb As SqlConnection
            condb = New SqlConnection(System.Configuration.ConfigurationSettings.AppSettings("constr"))
            condb.Open()
            Dim selestr As SqlCommand
            selestr = New SqlCommand("st_uponline", condb)
            selestr.CommandType = CommandType.StoredProcedure
            Dim isresult As Integer
            isresult = 2
            Dim userpar As New SqlParameter("@userid", SqlDbType.VarChar)
            Dim sqlpa As New SqlParameter("@isresult", SqlDbType.SmallInt)
            selestr.Parameters.Add("@userid", userid)
            selestr.Parameters.Add("@isresult", isresult)
            Dim reader As SqlDataReader
            reader = selestr.ExecuteReader
            Dim bs As Integer
            sqlpa.Direction = ParameterDirection.ReturnValue
            bs = sqlpa.Value
          
            Return bs
            condb.Close()
        End Function 'UpdateOnlineInfo
      

  6.   

    tryPublic Function UpdateOnlineInfo(ByVal userid As String) As Integer
            Dim condb As SqlConnection
            condb = New SqlConnection(System.Configuration.ConfigurationSettings.AppSettings("constr"))
            condb.Open()
            Dim selestr As SqlCommand
            selestr = New SqlCommand("st_uponline", condb)
            selestr.CommandType = CommandType.StoredProcedure
            sqlCmd.Parameters.Add("@userid", userid);
    sqlCmd.Parameters.Add("@isresult", SqlDbType.SmallInt); 
    sqlCmd.Parameters["@isresult"].Direction = ParameterDirection.Output; 
    sqlCmd.ExecuteNonQuery();
    Dim bs As Integer
            bs = sqlCmd.Parameters["@isresult"].Value
          
            Return bs
            condb.Close()
        End Function 'UpdateOnlineInfo
      

  7.   

    sqlCmd.Parameters["@isresult"].Direction = ParameterDirection.Output; 
    这句话,不对下面有波浪线
    不过我认为就是没有波浪线运行的话,它也会报参数isresult没有值
      

  8.   

    但我不给值,运行时就报没有给参数@isresult赋值
      

  9.   

    selestr.Parameters["@isresult"].direction=ParameterDirection.ReturnValue
    这句话,在这里也不能用,,用波浪线,
    selestr.Parameters["@isresult"].后面就没有direction这个方法
      

  10.   

    fairy_ghy() ( ) 信誉:100  2007-08-02 10:07:53  得分: 0  
     
     
       但我不给值,运行时就报没有给参数@isresult赋值  
    ----------
    那是你沒有將參數定義為Output。剛那段代碼運行什麼錯誤?我測試OK的。不過你是用VB.NET的寫法,不知道是不是有些出入.
      

  11.   

    asp.net中怎样将参数定义为output
      

  12.   

    过程 'st_uponline' 需要参数 '@isresult',但未提供该参数。
    这是按您那个写的,报上面的错误
    paoluo(一天到晚游泳的鱼) ( ) 信誉:100 
      

  13.   

    我可以了,,谢谢"paoluo(一天到晚游泳的鱼)"
    也要其它帮助我的!!呵呵..
    必须得把参数写进去,,
    我把代码贴出来,让大家看看,,
     Dim condb As SqlConnection
            condb = New SqlConnection(System.Configuration.ConfigurationSettings.AppSettings("constr"))
            condb.Open()
            Dim selestr As SqlCommand
            selestr = New SqlCommand("st_uponline", condb)
            selestr.CommandType = CommandType.StoredProcedure
            Dim isresult As Integer
            isresult = 2
            selestr.Parameters.Add("@userid", userid)
            selestr.Parameters.Add("@isresult", SqlDbType.SmallInt)
            selestr.Parameters("@isresult").Direction = ParameterDirection.ReturnValue
            selestr.Parameters.Add("@isresult", isresult)
            selestr.ExecuteNonQuery()
            Dim bs As Integer
            bs = selestr.Parameters("@isresult").Value
            Return bs
            condb.Close()
      

  14.   

    ==我是建的C#的專案,你建的是VB的專案。可能有些區別。