ÓÃSQL Server±£³Ö»á»°×´Ì¬
ÔÚµ÷Ó÷þÎñÆ÷ºóÒª¼ÌÐøÔÚ·þÎñÆ÷Öб£ÁôÊý¾Ýͨ³£ºÜÄÑ£¬Äã¿ÉÒÔÓÃSQL ServerÀ´½øÐлỰ״̬¹ÜÀí(Óû§»á»°Êý¾Ý)¡£ÒÔϽÌÄãÔõÑùÓÃËüÀ´½øÐйÜÀí¡£
¡¡¡¡ÔÚÒ³Ã濪·¢ÖУ¬ÔÚ·þÎñÆ÷µ÷ÓÃÀï±£ÁôÊý¾ÝÊÇÒ»¸ö³£¼ûµÄ²»ºÃ½â¾öµÄÄÑÌâ¡£ÄãÒ²ÐíÐèҪΪÄãµÄÓ¦ÓóÌÐò»òÌØÊâÓû§µÄ»á»°±£´æÐÅÏ¢¡£´æ´¢ÕâÑùµÄÊý¾Ý±»³ÆΪ״̬¹ÜÀí£¬ASP.NETΪÄãÌṩÁËһЩ·½·¨£¬ÕâЩ·½·¨ÄÜÈÃÄãͨ¹ý¸÷ÖÖ;¾¶Íê³ÉÕâÒ»ÈÎÎñ¡£Õâ°üÀ¨½«Êý¾Ý´æ´¢ÔÚÒ»¸ö״̬·þÎñÆ÷µÄÄÚ´æÖУ¬»òÕßͨ¹ýMicrosoft SQL·þÎñÆ÷¡£±¾ÎÄÖ÷ÒªÌÖÂÛÁËÓÃSQL·þÎñÆ÷À´½øÐлỰ״̬¹ÜÀí(Óû§»á»°Êý¾Ý)¡£
¡¡¡¡ÎªÊ²Ã´ÐèÒª½øÐÐ״̬¹ÜÀí£¿
¡¡¡¡ÔÚÉèÖúÍʹÓÃSQL Server֮ǰ£¬ÄãÒ²Ðí»áÏëÓбØÒªÕâÑù×öÂð£¿Ò³Ã濪·¢»¹ÓиüÈÃÈË·³ÄÕµÄÒ»Ã棬ÄǾÍÊÇHTTPÊÇÒ»ÏîÎÞ״̬ÐÒé¡£ËüµÄÔËÐÐÊǶ϶ÏÐøÐøµÄ£¬Ã¿¸öÒ³Ã涼»á°´½ÓÊܵ½µÄÃüÁîÔËÐС£ÃüÁîÖ´ÐÐÍêÒÔºó£¬ËùÓÐÓùýµÄÊý¾Ý¶¼»á¶ªÊ§¡£·þÎñÆ÷²»»á´æ´¢¹ØÓÚÄÇЩµ÷ÓõÄÈκμÇÒä¡£Ò²¾ÍÊÇ˵£¬Ëü²»»á´æ´¢Ïà¹Ø¼ÇÒ䣬³ý·ÇÓÐÌØÊâµÄÖ¸ÁîÈÃËü´æ´¢¡£
¡¡¡¡»á»°±äÁ¿
¡¡¡¡ÒÔÏÂÊÇʹÓûỰ±äÁ¿µÄ¸ñʽ£º
C#: Session["variable_name"] = value;
VB.NET: Session("variable_name") = value
¡¡¡¡µ±Õâ¸öÖµ±»´æ´¢ÁË£¬Óû§¾Í¿ÉÒÔÔÚÕû¸ö»á»°ÖÐʹÓÃËüÁË¡£»á»°½áÊøºó£¬±äÁ¿Ò²¾Í¶ªÊ§ÁË¡£ÄãÒ²¿ÉÒÔʹÓûعé״̬¹ÜÀí(ÕâÊÇÎÒÃÇÏÂÒ»´ÎÒªÌÖÂ۵Ļ°Ìâ)À´´¦ÀíÕâЩ¶ªÊ§µÄÖµ¡£
¡¡¡¡ASP.NET״̬¹ÜÀí
¡¡¡¡ASP.NETÔÊÐíÄãͨ¹ýÒ»¸ö״̬·þÎñÆ÷»òSQL·þÎñÆ÷½«»á»°Êý¾Ý´æ´¢ÔÚÄÚ´æÖС£´æ´¢µÄλÖÃÓÉÓ¦ÓóÌÐòµÄÒ³ÃæÅäÖÃÎļþÀ´¾ö¶¨¡£×´Ì¬¹ÜÀíÑ¡ÏîÊÇÔÚϵͳÖеÄsessionStateÔªËØÖУ¬Ò³ÃæÔªËØÊÇÔÚ״̬¹ÜÀíÖнøÐÐÉèÖõġ£ÒÔϵÄʾÀýÏÔʾÁËÔõÑùʹÓÃSQL Server£º
£¼sessionState
mode="SQLServer"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1; user id=username; password=password"
cookieless="false"
timeout="20" /£¾
¡¡¡¡×¢Ò⣬ÕâЩԪËصÄÃû³ÆºÍÊôÐÔ¶¼ÒªÇø·Ö´óСд¡£ÒÔÏÂÊǸÃģʽÊôÐԵĸ÷ÖÖ¿ÉÄÜÖµ£º
? InProc-´æ´¢ÔÚÄÚ´æÖС£ËüµÄÔËÐÐËÙ¶È×î¿ì£¬µ«Êǵ±ASP.NET³ÌÐòÖظ´ÔËÐеÄʱºòËùÓеÄÊý¾Ý¶¼»á¶ªÊ§¡£
? SQL Server-½«Êý¾Ý´æ´¢ÔÚSQL ServerÖС£ÓÉÓÚËüÓëÒ³Ãæ·þÎñÆ÷ÊÇ·ÖÀëµÄ£¬Òò´ËËüÊÇ×î¿ÉÐŵġ£Á¬½Ó×Ö·û´®»á°´ÕÕÕý³£µÄ˳ÐòÅÅÁУ¬ÒÔÁ¬½Óµ½SQL ServerÊý¾Ý¿âÖС£
? StateServer-½«Êý¾Ý´æ´¢ÔÚÒ»¸ö¶ÀÁ¢µÄÒ³Ãæ·þÎñÆ÷ÉÏ(IIS)¡£ÕâһѡÏîÀûÓÃÁËstateConnectionStringÕâÒ»ÊôÐÔ¡£
¡¡¡¡ËùÓеÄÑ¡ÏʹÓñ£
Ïà¹ØÎĵµ£º
CREATE procedure SqlPager_Ex
@sqlstr varchar(8000), --²éѯ×Ö·û´®
@currentpage int, --µÚNÒ³
@pagesize int --ÿҳÐÐÊý,
as
set nocount on
declare @P1 int, --P1ÊÇÓαêµÄid
@rowcount int
exec sp_cursorope ......
¡¡¡¡ÈÕÇ°SQL INJECTIONµÄ¹¥»÷²âÊÔÓúÑÝÓúÁÒ£¬ºÜ¶à´óÐ͵ÄÍøÕ¾ºÍÂÛ̳¶¼Ïà¼Ì±»×¢Èë¡£ÕâЩÍøÕ¾Ò»°ãʹÓõĶàΪSQL SERVERÊý¾Ý¿â£¬ÕýÒòΪÈç´Ë£¬ºÜ¶àÈË¿ªÊ¼»³ÒÉSQL SERVERµÄ°²È«ÐÔ¡£ÆäʵSQL SERVER 2000ÒѾͨ¹ýÁËÃÀ¹úÕþ¸®µÄC2¼¶°²È«ÈÏÖ¤-ÕâÊǸÃÐÐÒµËùÄÜÓµÓеÄ×î¸ßÈÏÖ¤¼¶±ð£¬ËùÒÔʹÓÃSQL SERVER»¹ÊÇÏ൱µÄ°²È«µÄ¡£µ±È»ºÍORCAL¡¢DB2µ ......
Êý¾ÝÔ´......°üº¬ÎÞ·¨ÓÃÓÚ´¦Àí²Ù×÷µÄ ImpersonationMode¡£
½â¾ö·½·¨£º
·þÎñÆ÷Á¬½Ó¸ÄΪ“ʹÓ÷þÎñÕË»§”¡£
¾ßÌå²Ù×÷£º
ÔÚÊý¾ÝÔ´ÀïµÄÏîÄ¿Éϵã»÷ÓÒ¼ü->´ò¿ª->Êý¾ÝÔ´Éè¼ÆÆ÷ £¬ Ñ¡Ôñ“Ä£ÄâÐÅÏ¢”±êÇ©->Ñ¡Ôñ“ʹÓ÷þÎñÕË»§”£¬È·¶¨£¬Ö´Ðв¿Êð¡£ ......
µÚÒ»ÖÖ·½·¨: ʹÓÃoutput²ÎÊý
USE AdventureWorks;
GO
IF OBJECT_ID ( 'Production.usp_GetList', 'P' ) IS NOT NULL
DROP PROCEDURE Production.usp_GetList;
GO
CREATE PROCEDURE Production.usp_GetList @product varchar(40)
, @maxprice money
, ......
¡¡1¡¢varchar(max)¡¢nvarchar(max)ºÍvarbinary(max)Êý¾ÝÀàÐÍ×î¶à¿ÉÒÔ±£´æ2GBµÄÊý¾Ý£¬¿ÉÒÔÈ¡´útext¡¢ntext»òimageÊý¾ÝÀàÐÍ¡£
CREATE TABLE myTable
(
id INT,
content VARCHAR(MAX)
)
¡¡¡¡2¡¢XMLÊý¾ÝÀàÐÍ
¡¡¡¡XMLÊý¾ÝÀàÐÍÔÊÐíÓû§ÔÚSQL ServerÊý¾Ý¿âÖб£´æXMLƬ¶Î»òÎĵµ¡£
¡¡¡¡´íÎó´¦Àí Error Handling
¡ ......