SQL server calling: declare @sInput1 varchar(20) declare @sOutput1 varchar(61) declare @iCount1 int declare @iRC int set @sInput1 = 'P01010' exec @iRC = PTest1 @sInput1, @iCount1 output, @sOutput1 output select @iRC irc, @sInput1 sInput1, @iCount1 iCount1, @sOutput1 Output1 -------------------------------------------------------------------------------------------- C# calling: Console.WriteLine("Test calling store procedure..."); using (SqlConnection cnn = new SqlConnection(sCNN)) { SqlCommand cmd = new SqlCommand(); string sInput1; string sOutput1; long iCount1; long iRC; sInput1 = "P01010"; sOutput1 = ""; iCount1 = -1; iRC = -1; // ���wStored Procedure�W�ٻP���� cmd.CommandText = "PTest1"; cmd.CommandType = CommandType.StoredProcedure; // �ѼƦW�٥�����Stored Procedure���ۦP. SqlParameter psInput1 = cmd.Parameters.Add("@psInput1", SqlDbType.VarChar, 20); SqlParameter piCount1 = cmd.Parameters.Add("@piCount1", SqlDbType.Int); SqlParameter psOutput1 = cmd.Parameters.Add("@psOutput1", SqlDbType.VarChar, 61); SqlParameter piRC = cmd.Parameters.Add("@iRC", SqlDbType.Int); piCount1.Direction = ParameterDirection.InputOutput; psOutput1.Direction = ParameterDirection.Output; piRC.Direction = ParameterDirection.ReturnValue; // Input�Ѽ������������w�� //cmd.Parameters["@psInput1"].Value = sInput1; //cmd.Parameters["@piCount1"].Value = iCount1; psInput1.Value = sInput1; piCount1.Value = iCount1; cmd.Connection = cnn; cnn.Open(); // �`�N: iEffected������return value irc!! //int iEffected = Convert.ToInt32( cmd.ExecuteNonQuery()); int iEffected = cmd.ExecuteNonQuery(); iRC = (int)piRC.Value; iCount1 = (int)piCount1.Value; sOutput1 = (string)psOutput1.Value; Console.WriteLine("iEffected={0}.", iEffected); Console.WriteLine("sInput1={0}.", sInput1); Console.WriteLine("sOutput1={0}.", sOutput1); Console.WriteLine("iCount1={0}.", iCount1); Console.WriteLine("iRC={0}.", iRC); cnn.Close(); } -------------------------------------------------------------------------------------- Create: USE [DBLuckWeb] GO /****** Object: StoredProcedure [dbo].[PTest1] Script Date: 01/03/2009 23:29:32 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE proc [dbo].[PTest1] @psInput1 varchar(20), @piCount1 int output, @psOutput1 varchar(61) output as declare @iCount int declare @iRC int set @iCount = 0 set @iRC = -1 select @psOutput1=FPgmID+'~'+FName from TSCUProgram where FPgmID=@psInput1 select @iCount=@@rowcount if (@iCount>=0) set @iRC = 0 Set @piCount1 = @iCount -- other test: declare @now datetime set @now = getutcdate() delete [DBSessionState].dbo.ASPStateTempSessions where expires < @now -- �Ҧ��t�ιw�s�{�ǭY���榨�\���|�^�� 0�A�Y�o��D 0 ���Ȫ��ܥ��ѡC -- �кɶq���`��h�AReturn RC=0 return @iRC