SQLServer´æ´¢¹ý³Ì·µ»ØÖµ×ܽá
1. ´æ´¢¹ý³ÌûÓзµ»ØÖµµÄÇé¿ö(¼´´æ´¢¹ý³ÌÓï¾äÖÐûÓÐreturnÖ®ÀàµÄÓï¾ä)
Ó÷½·¨ int count = ExecuteNonQuery(..)Ö´Ðд洢¹ý³ÌÆä·µ»ØÖµÖ»ÓÐÁ½ÖÖÇé¿ö
(1)¼ÙÈçͨ¹ý²éѯ·ÖÎöÆ÷Ö´Ðиô洢¹ý³Ì£¬ÔÚÏÔʾÀ¸ÖмÙÈçÓÐÓ°ÏìµÄÐÐÊý£¬ÔòÓ°Ï켸ÐÐcount¾ÍÊǼ¸
(2)¼ÙÈçͨ¹ý²éѯ·ÖÎöÆ÷Ö´Ðиô洢¹ý³Ì£¬ÔÚÏÔʾÀ¸ÖмÙÈçÏÔʾ'ÃüÁîÒѳɹ¦Íê³É¡£'Ôòcount = -1;ÔÚÏÔʾÀ¸ÖмÙÈçÓвéѯ½á¹û£¬Ôòcount = -1
×ܽ᣺A.ExecuteNonQuery()¸Ã·½·¨Ö»·µ»ØÓ°ÏìµÄÐÐÊý£¬¼ÙÈçûÓÐÓ°ÏìÐÐÊý£¬Ôò¸Ã·½·¨µÄ·µ»ØÖµÖ»ÄÜÊÇ-1£¬²»»áΪ0¡£ www.2cto.com
B.²»ÂÛExecuteNonQuery()·½·¨Êǰ´ÕÕCommandType.StoredProcedure»òÕßCommandType.TextÖ´ÐУ¬ÆäЧ¹ûºÍAÒ»Ñù¡£
---------------------------------------------------------------------------------------------------------------------------------------------------
2. »ñµÃ´æ´¢¹ý³ÌµÄ·µ»ØÖµ--ͨ¹ý²éѯ·ÖÎöÆ÷»ñµÃ
(1)²»´øÈκβÎÊýµÄ´æ´¢¹ý³Ì(´æ´¢¹ý³ÌÓï¾äÖк¬ÓÐreturn)
---´´½¨´æ´¢¹ý³Ì
CREATE PROCEDURE testReturn
AS
return 145
GO
---Ö´Ðд洢¹ý³Ì
DECLARE @RC int
exec @RC=testReturn
select @RC
---˵Ã÷
²éѯ½á¹ûΪ145
www.2cto.com
(2)´øÊäÈë²ÎÊýµÄ´æ´¢¹ý³Ì(´æ´¢¹ý³ÌÓï¾äÖк¬ÓÐreturn)
---´´½¨´æ´¢¹ý³Ì
create procedure sp_add_table1
@in_name varchar(100),
@in_addr varchar(100),
@in_tel varchar(100)
as
if(@in_name = '' or @in_name is null)
return 1
else
begin
insert into table1(name,addr,tel) values(@in_name,@in_addr,@in_tel)
return 0
end
---Ö´Ðд洢¹ý³Ì
<1>Ö´ÐÐÏÂÁУ¬·µ»Ø1
declare @count int exec @count = sp_add_table1 '','ÖÐÈý·','123456' select @count
<2>Ö´ÐÐÏÂÁУ¬·µ»Ø0
declare @count int exec @count = sp_add_table1 '','ÖÐÈý·','123456' select @count
---˵Ã÷
²éѯ½á¹û²»ÊÇ0¾ÍÊÇ1
www.2cto.com
(3)´øÊä³ö²ÎÊýµÄ´æ´¢¹ý³Ì(´æ´¢¹ý³ÌÖпÉÒÔÓÐreturn¿ÉÒÔûÓÐreturn)
Àý×ÓA£º
---´´½¨´æ´¢¹ý³Ì
create procedure sp_output
@output int output
as
set @output = 121
return 1
---Ö´Ðд洢¹ý³Ì
<1>Ö´ÐÐÏÂÁУ¬·µ»Ø121
declare @out int
exec sp_output @out output
select @out
<2>Ö´ÐÐÏÂÁУ¬·µ»Ø1
declare @out int
declare @count int
exec @count = sp_output @out output
select @count
---˵Ã÷
ÓÐreturn£¬Ö»Òª²éѯÊä³ö²ÎÊý£¬Ôò²éѯ½á¹ûΪÊä³ö²ÎÊýÔÚ´æ´¢¹ý³ÌÖÐ×îºó±ä³ÉµÄÖµ£»Ö»Òª²»²éѯÊä³ö²ÎÊý£¬Ôò²éѯ½á¹ûΪreturn·µ»ØµÄÖµ
Àý×ÓB£º
---´´½¨´æ´¢¹ý³Ì
create procedure sp_output
@output int output
as www.2cto.com
set @output = 121
---Ö´Ðд洢¹ý³Ì
<1>Ö´ÐÐÏÂÁУ¬·µ»Ø121
declare @out int
exec sp_output @out output
select @out
<2>Ö´ÐÐÏÂÁУ¬·µ»Ø0
declare @out int
declare @count int
exec @count = sp_output @out output
select @count
---˵Ã÷
ûÓÐreturn£¬Ö»Òª²éѯÊä³ö²ÎÊý£¬Ôò²éѯ½á¹ûΪÊä³ö²ÎÊýÔÚ´æ´¢¹ý³ÌÖÐ×îºó±ä³ÉµÄÖµ£»Ö»Òª²»²éѯÊä³ö²ÎÊý£¬Ôò²éѯ½á¹ûΪ0
×ܽ᣺
(1)´æ´¢¹ý³Ì¹²·ÖΪ3Àࣺ
A.·µ»Ø¼Ç¼¼¯µÄ´æ´¢¹ý³Ì---------------------------ÆäÖ´Ðнá¹ûÊÇÒ»¸ö¼Ç¼¼¯£¬ÀýÈ磺´Ó
Êý¾Ý¿âÖмìË÷³ö·ûºÏijһ¸ö»ò¼¸¸öÌõ¼þµÄ¼Ç¼
B.·µ»ØÊýÖµµÄ´æ´¢¹ý³Ì(Ò²¿ÉÒÔ³ÆÎª±êÁ¿´æ´¢¹ý³Ì)-----ÆäÖ´ÐÐÍêÒÔºó·µ»ØÒ»¸öÖµ£¬ÀýÈ磺ÔÚ
Êý¾Ý¿âÖÐÖ´ÐÐÒ»¸öÓзµ»ØÖµµÄº¯Êý»òÃüÁî
C.ÐÐΪ´æ´¢¹ý³Ì-----------------------------------ÓÃÀ´ÊµÏÖÊý¾Ý¿âµÄij¸ö¹¦ÄÜ£¬¶øÃ»Óзµ»ØÖµ£¬ÀýÈ磺ÔÚÊý¾Ý¿âÖеĸüкÍɾ³ý²Ù×÷
(2)º¬ÓÐreturnµÄ´æ´¢¹ý³ÌÆä·µ»ØÖµÎªreturn·µ»ØµÄÄǸöÖµ
(3)ûÓÐreturnµÄ´æ´¢¹ý³Ì£¬²»ÂÛÖ´Ðнá¹ûÓÐÎ޼Ǽ¼¯£¬Æä·µ»ØÖµÊÇ0
(4)´øÊä³ö²ÎÊýµÄ´æ´¢¹ý³Ì£º¼ÙÈçÓÐreturnÔò·µ»Øreturn·µ»ØµÄÄǸöÖµ£¬¼ÙÈçÒªselectÊä³ö²ÎÊý£¬Ôò³öÏÖÊä³ö²ÎÊýµÄÖµ£¬ÓÚÓÐÎÞreturnÎÞ¹Ø
---------------------------------------------------------------------------------------------------------------------------------------------------
3.»ñµÃ´æ´¢¹ý³ÌµÄ·µ»ØÖµ--ͨ¹ý³ÌÐò»ñµÃ www.2cto.com
---------------------------------------------------------------------------------------------------------------------------------------------------
SqlParameter[] cmdParms = { .. ,new SqlParameter("@return",SqlDbType.Int)};
cmdParms[cmdParms.Length - 1].Direction = Paramete