SqlCommand sampleCMD = new SqlCommand("SampleProc", nwindConn);
sampleCMD.CommandType = CommandType.StoredProcedure;
SqlParameter sampParm = sampleCMD.Parameters.Add("RETURN_VALUE", SqlDbType.Int);
sampParm.Direction = ParameterDirection.ReturnValue;

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/3036/3036369.xml?temp=.290188
      

  2.   

    sampleCMD.Parameters["RETURN_VALUE"].Value  //返回的值
      

  3.   

    int m_intCardRecord = 0;System.Data.SqlClient.SqlCommand MyCom = new System.Data.SqlClient.SqlCommand("pro_AT_Sufferer_CardRecord_IC_Charge",ClassSQLServerWrapper.SQLconn);
    MyCom.CommandType = System.Data.CommandType.StoredProcedure;MyCom.Parameters.Clear();System.Data.SqlClient.SqlParameter P_intSuffererID = MyCom.Parameters.Add("@intSuffererID", System.Data.SqlDbType.Int);
    System.Data.SqlClient.SqlParameter P_intGatheringType = MyCom.Parameters.Add("@intGatheringType", System.Data.SqlDbType.Int);
    System.Data.SqlClient.SqlParameter P_dblFee = MyCom.Parameters.Add("@dblFee", System.Data.SqlDbType.Float);
    System.Data.SqlClient.SqlParameter P_intCardID = MyCom.Parameters.Add("@intCardID", System.Data.SqlDbType.Int);
    System.Data.SqlClient.SqlParameter P_intOperateID = MyCom.Parameters.Add("@intOperateID", System.Data.SqlDbType.Int);
    System.Data.SqlClient.SqlParameter P_strOperater = MyCom.Parameters.Add("@strOperater", System.Data.SqlDbType.VarChar,32);
    System.Data.SqlClient.SqlParameter P_intWriter = MyCom.Parameters.Add("@intWriter", System.Data.SqlDbType.Int);
    System.Data.SqlClient.SqlParameter P_intKYWJLID = MyCom.Parameters.Add("@intKYWJLID", System.Data.SqlDbType.Int);System.Data.SqlClient.SqlParameter P_intOutPut = MyCom.Parameters.Add("@intOutPut",System.Data.SqlDbType.Int);P_intOutPut.Direction = System.Data.ParameterDirection.Output;P_intSuffererID.Value = m_intSuffererID;
    P_intGatheringType.Value = ClassBaseGlobeVariable.Globe_FeeMethod;
    P_dblFee.Value = Convert.ToDouble(this.txtCharge.Text);
    P_intCardID.Value = m_intCardID;
    P_intOperateID.Value = ClassBaseGlobeVariable.Globe_Employee_ID;
    P_strOperater.Value = ClassBaseGlobeVariable.Globe_Name;
    P_intWriter.Value = ClassBaseGlobeVariable.Globe_Employee_ID;
    P_intKYWJLID.Value = p_intKYWJL;P_intOutPut.Value = 0;MyCom.Connection.Open();
    MyCom.ExecuteNonQuery();
    MyCom.Connection.Close();if(Convert.ToInt32(P_intOutPut.Value.ToString()) > 0)
    {
    m_intCardRecord = Convert.ToInt32(P_intOutPut.Value.ToString());
    }
    else
    {
    MessageBox.Show(this,"数据写入未成功!","注意",MessageBoxButtons.OK,MessageBoxIcon.Exclamation,MessageBoxDefaultButton.Button1);
    return;
    }给你参考
      

  4.   

    MSDN
    存储过程提供了数据驱动应用程序中的许多优点。利用存储过程,数据库操作可以封装在单个命令中,为获取最佳性能而进行优化并通过附加的安全性得到增强。虽然可以通过以 SQL 语句的形式传递参数自变量之前的存储过程名称来调用存储过程,但如果使用 ADO.NET Command 对象的 Parameters 集合,则可以显式地定义存储过程参数并访问输出参数和返回值。若要调用存储过程,请将 Command 对象的 CommandType 设置为 StoredProcedure。CommandType 一旦设置为 StoredProcedure,就可以使用 Parameters 集合来定义参数,如以下示例所示。mmand sampleCMD = new SqlCommand("SampleProc", nwindConn);
    sampleCMD.CommandType = CommandType.StoredProcedure;sampParm = sampleCMD.Parameters.Add("@InputParm", SqlDbType.NVarChar, 12);
    sampParm.Value = "Sample Value";sampParm = sampleCMD.Parameters.Add("@OutputParm", SqlDbType.NVarChar, 28);
    sampParm.Direction = ParameterDirection.Output;nwindConn.Open();SqlDataReader sampReader = sampleCMD.ExecuteReader();Console.WriteLine("{0}, {1}", sampReader.GetName(0), sampReader.GetName(1));while (sampReader.Read())
    {
      Console.WriteLine("{0}, {1}", sampReader.GetInt32(0), sampReader.GetString(1));
    }sampReader.Close();
    nwindConn.Close();
      

  5.   

    P_intOutPut.Direction = System.Data.ParameterDirection.Output;这个语句说明这个参数是返回的参数
      

  6.   

    参数有一个Direction属性,指明是用于输入还是输出的。
    就是它了。