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
JSP, EJB, JSF
How to change the regualr property to the automated property for which the automated property is working fine
the workstation driver is not installed, cannot access network shares from server or workstations
Microsoft Access 2007 - ControlTip Text on Form Control
IAT patching, problem when calling back to original target function?
mysql_fetch_array error
How to change the encoding of the postgre in the client side using pg_set_client_encoding?
mysql query - version
SQL 2005 Update Query??
What is the best way to create an external distribution group in Exchange 2010