如题,并且我想有一个参数返回到C#里。应该怎么做?详细一点,谢谢

解决方案 »

  1.   

    SqlConnection conn = new SqlConnection(连接字符串);
    conn.Open();
    SqlCommand comm = new SqlCommand();
    comm.Connection = conn;
    comm.CommandType = CommandType.StoredProcedure;
    comm.CommandText = 存储过程名称;SqlParameter pm;
    pm = comm.Parameters.Add("@ID", SqlDbType.Int);
    pm.Value = 1;comm.ExecuteNonQuery();
      

  2.   

    Create Procedure TestProcedure2(
    @au_idIN varchar (11))                             //存储过程
    As
    /* set nocount on */
    select count (T.title)
    from authors as A join titleauthor as TA on
    A.au_id=TA.au_id
    join titles as T
    on T.title_id=TA.title_id
    where A.au_id=@au_idIN
    Return(5)string strCount;
    SqlConnection PubsConn = new SqlConnection
    ("Data Source=server;integrated " +
    "Security=sspi;initial catalog=pubs;");
    SqlCommand testCMD = new SqlCommand
    ("TestProcedure2", PubsConn);testCMD.CommandType = CommandType.StoredProcedure;SqlParameter RetVal = testCMD.Parameters.Add
    ("RetVal", SqlDbType.Int);
    RetVal.Direction = ParameterDirection.ReturnValue;
    SqlParameter IdIn = testCMD.Parameters.Add
    ("@au_idIN", SqlDbType.VarChar, 11);
    IdIn.Direction = ParameterDirection.Input;IdIn.Value = "213-46-8915";PubsConn.Open();strCount = testCMD.ExecuteScalar().ToString() ;Console.WriteLine("Number of Rows:" + strCount);
    Console.WriteLine("Return Value:" + RetVal.Value);不明白,在存储过程里只有一个参数,而在程序里却写了两个参数。。为什么啊?
      

  3.   

    因为存储过程有一个Return返回值,所以多创建了一个参数来接收这个返回值。
    SqlParameter RetVal = testCMD.Parameters.Add("RetVal", SqlDbType.Int);
    RetVal.Direction = ParameterDirection.ReturnValue;你没见到Direction 的值是ParameterDirection.ReturnValue吗?
      

  4.   

    SqlCommand cmdTemp;
    SqlParameter spTemp;
    string strI;
    OpenDataBase();
    //加密数据 strPwd=FormsAuthentication.HashPasswordForStoringInConfigFile(strPwd,"md5"); cmdTemp=new SqlCommand("UserLogln",conn);
    cmdTemp.CommandType=CommandType.StoredProcedure;
    cmdTemp.Parameters.Add ("@UserID",strUserName);
    cmdTemp.Parameters.Add ("@UserPwd",strPwd);
    spTemp=cmdTemp.Parameters.Add("@intI",SqlDbType.Int);
    spTemp.Direction=ParameterDirection.Output;
    cmdTemp.ExecuteNonQuery();
    strI=spTemp.Value.ToString();//一样的返回结果
    strI=cmdTemp.Parameters["@intI"].Value.ToString();//一样的返回结果
    cmdTemp.Dispose();
    CloseDataBase();