Microsoft
Software
Hardware
Network
Question : SQL in C# code .. Reading Output Parameters.
I got it so close I can almost taste victory. But alas, foiled again.
I put in code to read a SQL Stored procedure with and output parameter.
The output parameter is set ok in the Stored Procedure.
I know I am getting the info to return because I get the first character of the entry in the field. If the message is empty it returns the field empty if it is set to something like "Can't Add..." I get back "C"... That's it.. One lousy character! What the ????????
I added an image of the results of running the Stored Procedure in SQL..
here is my C# code
cmd = new SqlCommand("ULInsideRepMai
nt", SQLServer_Conn.Connection)
;
//if want to read output parm when return, make sure you intialize it in SP!
//Then set the direction to output.
cmd.Parameters.AddWithValu
e("@SPMess
age", "");
cmd.Parameters["@SPMessage
"].Directi
on = ParameterDirection.Output;
cmd.Parameters.AddWithValu
e("@Proces
s", pbl.pblStringVar1);
cmd.Parameters.AddWithValu
e("@RepNo"
, pbl.pblstrRepNo);
cmd.CommandType = CommandType.StoredProcedur
e;
try
{
SQLServer_Conn.Open();
cmd.ExecuteNonQuery();
SQLServer_Conn.Close();
//See if we have an error message or if it is empty..
lblMessage.Text = (string)cmd.Parameters["@S
pMessage"]
.Value;
}
catch (SqlException exc)
{
lblMessage.Text = exc.Message;
}
finally
{
pbl.pblStringVar1 = string.Empty;
}
}
here is my SqL Code..
ALTER Procedure [dbo].[ULInsideRepMaint]
@SPMessage CHAR (100) OUTPUT,
@Process Char (1),
@RepNo Char(5)
AS
declare @reccount2 as int;
--since reading this in C# code, need to set it.
set @SpMessage = '';
--- Check if valid process (can not add if already added or if not in VD SalesRep to add, can't delete if not there)
set @reccount2 = (select count(Salesperson) from SSIS_VD.SSIS.ULarSalespers
on where @repno = Salesperson)
-- Cannot add Rep if not in VD SalesRep Table to begin with!
If @Process = 'A' and @reccount2 = 0
Begin
set @SpMessage = 'Cannot Add Rep, Rep # is not in VD SalesRep Table';
Return
end;
Attachments:
SQLInCSharp.jpg
(30 KB)
(File Type Details)
Results Running in SQL
Answer : SQL in C# code .. Reading Output Parameters.
hi
when u write
cmd.Parameters.AddWithValu
e("@SPMess
age", "");
then length of @SPMessage set to char(1) but then sp parameter is char(100) in casting (in C# code in return) the the @SPMessage is truncated
Random Solutions
From SQL to Crystal Reports: number is truncated automatically
Cisco ccent gns Vlan
Decision between HP DL 380 and DL580
Register DLL's
Search onLoad events in entire organization
custom ADM which will restrict and hide all drives except F on Windows 2008 Server
Migrating WSUS repository directory into different drive
Macro for delete data
Exchange 2007 retrieve messages from disconnected mailbox
Spit tunneling problem