-
Êý¾Ý¿âÁ½ÕűíµÄ±È½Ï
2009-03-30 11:23:44
ÔÚijЩÇé¿öÏ£¬ÎÒÃÇ»áÐèÒª±È½ÏÁ½ÕűíµÄÊý¾ÝÊÇ·ñÒ»Ñù¡£
¡¡¡¡¼ÙÉèÓÐÁ½ÕűíAÓë±íBËüÃǵÄ×Ö¶ÎÏàͬ£¬µ«Êǵ±ÖеÄÊý¾Ý¿ÉÄܲ»Í¬£¬¶øÇÒÓÐЩ×ֶεÄÊý¾Ý»¹ÓпÉÄÜΪ¿Õ¡£
¡¡¡¡·½·¨Ò»(ÊÖ¶¯)£º°ÑÐèÒª±È½ÏµÄÁ½ÕűíµÄÊý¾Ý°´ÕÕijÖÖ¹æÔòÅÅÐòºóµ¼³öΪxls,ÕâÀïÎÒÖ±½ÓÓÃPL/SQL Developerµ¼³ö¡£
¡¡¡¡È»ºóÓðÑxlsÎļþת»»³ÉtxtÎļþ£¬ÕâÀïÎÒÓõÄÊÇbatconvת»»¹«Ê½¡£
¡¡¡¡ÏÖÔÚÎÒÃǾÍÓÐÁËÁ½¸ötxtÎļþ¡£
¡¡¡¡È»ºóÓÃbeyond compareÎļþ±È½ÏÆ÷±È½ÏÄÚÈÝ¡£
¡¡¡¡Óŵ㣺Êý¾Ý²îÒìһĿÁËÈ»£¬È±µã£º±È½Ï·Ñʱ¡£
¡¡¡¡·½·¨¶þ(ͨ¹ýSqlÓï¾äÀ´±È½Ï)£º
¡¡¡¡´´½¨±íµÄÓï¾ä£º
create table formula(
¡¡¡¡id varchar2(50) primary key--×Ô¶¯Éú³ÉµÄ£¬Î¨Ò»µÄ¡£
¡¡¡¡formulaName varchar2(50),
¡¡¡¡formulaContent varchar2(2000),
¡¡¡¡formulaType varchar2(20),
¡¡¡¡)¡¡¡¡µ±Öгýid²»Îª¿Õ£¬ÆäËüÈýÏî¾ù¿ÉÄÜΪ¿Õ¡£
¡¡¡¡Ò»°ãÇé¿öÏÂÎÒÃÇ¿ÉÒÔÓÃ
select * from formula A where not exists (select * from formula B where A.formulaName=
¡¡¡¡B.formulaName and A.formulaContent=B.formulaContent and A.formulaType=B.formulaType)¡¡¡¡ÔÚoracle Çé¿öÏÂÈç¹ûÁ½ÕűíµÄij¸ö×ֶζ¼ÎªnullÔòÆäͨ¹ýA.*=B.*ÊDZȽϲ»³öÀ´µÄ¡£
¡¡¡¡Òò´ËÒª¶îÍâ¼ÓÉÏÕâÑùµÄÅжÏ
or(A.formulaContent is null and B.formulaContent is null) or
¡¡¡¡(A.fomrulaName is null and B.fomrulaName is null) or (A.formulaType is null and B.fomrulaType is null)¡¡¡¡Í¨¹ýÉÏÃæÕâ¸ösqlÓï¾äÎÒÃǾͿÉÒÔÕÒÔÚA±íÖдæÔÚ£¬µ«ÔÚB±íÖв»´æÔÚµÄÊý¾Ý
¡¡¡¡·´¹ýÀ´¿ÉÒÔ²éѯÔÚB±íÖдæÔÚ£¬µ«ÔÚA±íÖв»´æÔÚµÄÊý¾Ý¡£
¡¡¡¡ÈôÁ½¸ö²éѯ¶¼Îª¿Õ£¬Ôò˵Ã÷Á½ÕűíµÄÏàÓ¦×Ö¶ÎÍêÈ«Ïàͬ¡£
¡¡¡¡ÈôÕâÁ½ÕűíÔÚ²»Í¬µÄÊý¾Ý¿â£¬ÔòҪͨ¹ý½¨Á¢DBLink¡£
¡¡¡¡Óŵ㣺Êý¾Ý±È½Ï¿ì£¬ÌرðÊÇÔÚÊý¾ÝÁ¿±È½Ï´óµÄÊý¾ÝÓÅÊƸü¼ÓÃ÷ÏÔ£¬
¡¡¡¡È±µã£º±È½Ïʱ²»Äܺܿ쿴³öÁ½ÕűíµÄ²îÒì¡£ÒòΪ²éѯµÄÖ»Êǵ±ÖеÄijһÕÅ±í¡£
-
´æ´¢¹ý³Ì³£Óü¼ÇÉ
2009-03-30 10:52:36
×÷ÕߣºÔ¬¹â¶«
ÎÒÃÇÔÚ½øÐÐpl/sql±à³Ìʱ´ò½»µÀ×î¶àµÄ¾ÍÊÇ´æ´¢¹ý³ÌÁË¡£´æ´¢¹ý³ÌµÄ½á¹¹ÊǷdz£µÄ¼òµ¥µÄ£¬ÎÒÃÇÔÚÕâÀï³ýÁËѧϰ´æ´¢¹ý³ÌµÄ»ù±¾½á¹¹Í⣬»¹»áѧϰ±àд´æ´¢¹ý³ÌʱÏà¹ØµÄһЩʵÓõÄ֪ʶ¡£È磺ÓαêµÄ´¦Àí£¬Òì³£µÄ´¦Àí£¬¼¯ºÏµÄÑ¡ÔñµÈµÈ
1.´æ´¢¹ý³Ì½á¹¹
1.1 µÚÒ»¸ö´æ´¢¹ý³Ì
- create or replace procedure proc1(
- p_para1 varchar2,
- p_para2 out varchar2,
- p_para3 in out varchar2
- )as
- v_name varchar2(20);
- begin
- v_name := 'ÕÅÈý·á';
- p_para3 := v_name;
- dbms_output.put_line('p_para3:'||p_para3);
- end;
create or replace procedure proc1( p_para1 varchar2, p_para2 out varchar2, p_para3 in out varchar2 )as v_name varchar2(20); begin v_name := 'ÕÅÈý·á'; p_para3 := v_name; dbms_output.put_line('p_para3:'||p_para3); end;
ÉÏÃæ¾ÍÊÇÒ»¸ö×î¼òµ¥µÄ´æ´¢¹ý³Ì¡£Ò»¸ö´æ´¢¹ý³Ì´óÌå·ÖΪÕâô¼¸¸ö²¿·Ö:
´´½¨Óï¾ä£ºcreate or replace procedure ´æ´¢¹ý³ÌÃû
Èç¹ûûÓÐor replaceÓï¾ä£¬Ôò½ö½öÊÇн¨Ò»¸ö´æ´¢¹ý³Ì¡£Èç¹ûϵͳ´æÔڸô洢¹ý³Ì£¬Ôò»á±¨´í¡£Create or replace procedure Èç¹ûϵͳÖÐûÓд˴洢¹ý³Ì¾Íн¨Ò»¸ö£¬Èç¹ûϵͳÖÐÓд˴洢¹ý³ÌÔò°ÑÔÀ´É¾³ýµô£¬ÖØд´½¨Ò»¸ö´æ´¢¹ý³Ì¡£
´æ´¢¹ý³ÌÃû¶¨Ò壺°üÀ¨´æ´¢¹ý³ÌÃûºÍ²ÎÊýÁÐ±í¡£²ÎÊýÃûºÍ²ÎÊýÀàÐÍ¡£²ÎÊýÃû²»ÄÜÖظ´£¬ ²ÎÊý´«µÝ·½Ê½:IN, OUT, IN OUT
IN ±íʾÊäÈë²ÎÊý£¬°´Öµ´«µÝ·½Ê½¡£
OUT ±íʾÊä³ö²ÎÊý£¬¿ÉÒÔÀí½âΪ°´ÒýÓô«µÝ·½Ê½¡£¿ÉÒÔ×÷Ϊ´æ´¢¹ý³ÌµÄÊä³ö½á¹û£¬¹©Íⲿµ÷ÓÃÕßʹÓá£
IN OUT ¼´¿É×÷ÊäÈë²ÎÊý£¬Ò²¿É×÷Êä³ö²ÎÊý¡£
²ÎÊýµÄÊý¾ÝÀàÐÍÖ»ÐèÒªÖ¸Ã÷ÀàÐÍÃû¼´¿É£¬²»ÐèÒªÖ¸¶¨¿í¶È¡£
²ÎÊýµÄ¿í¶ÈÓÉÍⲿµ÷ÓÃÕß¾ö¶¨¡£
¹ý³Ì¿ÉÒÔÓвÎÊý£¬Ò²¿ÉÒÔûÓвÎÊý
±äÁ¿ÉùÃ÷¿é£º½ô¸ú×ŵÄas (is )¹Ø¼ü×Ö£¬¿ÉÒÔÀí½âΪpl/sqlµÄdeclare¹Ø¼ü×Ö£¬ÓÃÓÚÉùÃ÷±äÁ¿¡£
±äÁ¿ÉùÃ÷¿éÓÃÓÚÉùÃ÷¸Ã´æ´¢¹ý³ÌÐèÒªÓõ½µÄ±äÁ¿£¬ËüµÄ×÷ÓÃÓòΪ¸Ã´æ´¢¹ý³Ì¡£ÁíÍâÕâÀïÉùÃ÷µÄ±äÁ¿±ØÐëÖ¸¶¨¿í¶È¡£×ñÑPL/SQLµÄ±äÁ¿ÉùÃ÷¹æ·¶¡£
¹ý³ÌÓï¾ä¿é£º´Óbegin ¹Ø¼ü×Ö¿ªÊ¼Îª¹ý³ÌµÄÓï¾ä¿é¡£´æ´¢¹ý³ÌµÄ¾ßÌåÂß¼ÔÚÕâÀïÀ´ÊµÏÖ¡£
Òì³£´¦Àí¿é£º¹Ø¼ü×ÖΪexception £¬Îª´¦ÀíÓï¾ä²úÉúµÄÒì³£¡£¸Ã²¿·ÖΪ¿ÉÑ¡
½áÊø¿é£ºÓÉend¹Ø¼ü×Ö½á¹û¡£
1.2 ´æ´¢¹ý³ÌµÄ²ÎÊý´«µÝ·½Ê½
´æ´¢¹ý³ÌµÄ²ÎÊý´«µÝÓÐÈýÖÖ·½Ê½:IN,OUT,IN OUT .
IN °´Öµ´«µÝ£¬²¢ÇÒËü²»ÔÊÐíÔÚ´æ´¢¹ý³ÌÖб»ÖØи³Öµ¡£Èç¹û´æ´¢¹ý³ÌµÄ²ÎÊýûÓÐÖ¸¶¨´æ²ÎÊý´«µÝÀàÐÍ£¬Ä¬ÈÏΪIN
- create or replace procedure proc1(
- p_para1 varchar2,
- p_para2 out varchar2,
- p_para3 in out varchar2
- )as
- v_name varchar2(20);
- begin
- p_para1 :='aaa';
- p_para2 :='bbb';
- v_name := 'ÕÅÈý·á';
- p_para3 := v_name;
- dbms_output.put_line('p_para3:'||p_para3);
- null;
- end;
- Warning: Procedure created with compilation errors
- SQL> show error;
- Errors for PROCEDURE LIFEMAN.PROC1:
- LINE/COL ERROR
- -------- ----------------------------------------------------------------------
- 8/3 PLS-00363: expression 'P_PARA1' cannot be used as an assignment target
- 8/3 PL/SQL: Statement ignored
create or replace procedure proc1( p_para1 varchar2, p_para2 out varchar2, p_para3 in out varchar2 )as v_name varchar2(20); begin p_para1 :='aaa'; p_para2 :='bbb'; v_name := 'ÕÅÈý·á'; p_para3 := v_name; dbms_output.put_line('p_para3:'||p_para3); null; end; Warning: Procedure created with compilation errors SQL> show error; Errors for PROCEDURE LIFEMAN.PROC1: LINE/COL ERROR -------- ---------------------------------------------------------------------- 8/3 PLS-00363: expression 'P_PARA1' cannot be used as an assignment target 8/3 PL/SQL: Statement ignored
ÕâÒ»µãÓëÆäËü¸ß¼¶ÓïÑÔ¶¼²»Í¬¡£ËüÏ൱ÓÚjavaÔÚ²ÎÊýÇ°Ãæ¼ÓÉÏfinal¹Ø¼ü×Ö¡£
OUT ²ÎÊý£º×÷ΪÊä³ö²ÎÊý£¬ÐèҪעÒ⣬µ±Ò»¸ö²ÎÊý±»Ö¸¶¨ÎªOUTÀàÐÍʱ£¬¾ÍËãÔÚµ÷Óô洢¹ý³Ì֮ǰ¶Ô¸Ã²ÎÊý½øÐÐÁ˸³Öµ£¬ÔÚ´æ´¢¹ý³ÌÖиòÎÊýµÄÖµÈÔÈ»ÊÇnull.
- create or replace procedure proc1(
- p_para1 varchar2,
- p_para2 out varchar2,
- p_para3 in out varchar2
- )as
- v_name varchar2(20);
- begin
- v_name := 'ÕÅÈý·á';
- p_para3 := v_name;
- dbms_output.put_line('p_para1:'||p_para1);
- dbms_output.put_line('p_para2:'||p_para2);
- dbms_output.put_line('p_para3:'||p_para3);
- end;
- SQL> var p1 varchar2(10);
- SQL> var p2 varchar2(10);
- SQL> var p3 varchar2(10);
- SQL> exec :p1 :='aaaa';
- SQL> exec :p2 :='bbbb';
- SQL> exec :p3 :='cccc';
- SQL> exec proc1(:p1,:p2,:p3);
- p_para1:aaaa
- p_para2:
- p_para3:ÕÅÈý·á
- SQL> exec dbms_output.put_line(:p2);
- PL/SQL procedure successfully completed
- p2
- ---------
create or replace procedure proc1( p_para1 varchar2, p_para2 out varchar2, p_para3 in out varchar2 )as v_name varchar2(20); begin v_name := 'ÕÅÈý·á'; p_para3 := v_name; dbms_output.put_line('p_para1:'||p_para1); dbms_output.put_line('p_para2:'||p_para2); dbms_output.put_line('p_para3:'||p_para3); end; SQL> var p1 varchar2(10); SQL> var p2 varchar2(10); SQL> var p3 varchar2(10); SQL> exec :p1 :='aaaa'; SQL> exec :p2 :='bbbb'; SQL> exec :p3 :='cccc'; SQL> exec proc1(:p1,:p2,:p3); p_para1:aaaa p_para2: p_para3:ÕÅÈý·á SQL> exec dbms_output.put_line(:p2); PL/SQL procedure successfully completed p2 ---------
INOUT ÊÇÕæÕýµÄ°´ÒýÓô«µÝ²ÎÊý¡£¼´¿É×÷Ϊ´«Èë²ÎÊýÒ²¿ÉÒÔ×÷Ϊ´«³ö²ÎÊý¡£
- 1.3 ´æ´¢¹ý³Ì²ÎÊý¿í¶È
- create or replace procedure proc1(
- p_para1 varchar2,
- p_para2 out varchar2,
- p_para3 in out varchar2
- )as
- v_name varchar2(2);
- begin
- v_name := p_para1;
- end;
- SQL> var p1 varchar2(10);
- SQL> var p2 varchar2(20);
- SQL> var p3 varchar2(30);
- SQL> exec :p1 :='aaaaaa';
- SQL> exec proc1(:p1,:p2,:p3);
- ORA-06502: PL/SQL: numeric or value error: character string buffer too small
- ORA-06512: at "LIFEMAN.PROC1", line 8
- ORA-06512: at line 1
1.3 ´æ´¢¹ý³Ì²ÎÊý¿í¶È create or replace procedure proc1( p_para1 varchar2, p_para2 out varchar2, p_para3 in out varchar2 )as v_name varchar2(2); begin v_name := p_para1; end; SQL> var p1 varchar2(10); SQL> var p2 varchar2(20); SQL> var p3 varchar2(30); SQL> exec :p1 :='aaaaaa'; SQL> exec proc1(:p1,:p2,:p3); ORA-06502: PL/SQL: numeric or value error: character string buffer too small ORA-06512: at "LIFEMAN.PROC1", line 8 ORA-06512: at line 1
Ê×ÏÈ£¬ÎÒÃÇÒªÃ÷°×£¬ÎÒÃÇÎÞ·¨ÔÚ´æ´¢¹ý³ÌµÄ¶¨ÒåÖÐÖ¸¶¨´æ´¢²ÎÊýµÄ¿í¶È£¬Ò²¾Íµ¼ÖÂÁËÎÒÃÇÎÞ·¨ÔÚ´æ´¢¹ý³ÌÖпØÖÆ´«Èë±äÁ¿µÄ¿í¶È¡£Õâ¸ö¿í¶ÈÊÇÍêÈ«ÓÉÍⲿ´«Èëʱ¾ö¶¨µÄ¡£
ÎÒÃÇÔÙÀ´¿´¿´OUTÀàÐ͵IJÎÊýµÄ¿í¶È¡£
- create or replace procedure proc1(
- p_para1 varchar2,
- p_para2 out varchar2,
- p_para3 in out varchar2
- )as
- v_name varchar2(2);
- begin
- p_para2 :='aaaaaaaaaaaaaaaaaaaa';
- end;
- SQL> var p1 varchar2(1);
- SQL> var p2 varchar2(1);
- SQL> var p3 varchar2(1);
- SQL> exec :p2 :='a';
- SQL> exec proc1(:p1,:p2,:p3);
create or replace procedure proc1( p_para1 varchar2, p_para2 out varchar2, p_para3 in out varchar2 )as v_name varchar2(2); begin p_para2 :='aaaaaaaaaaaaaaaaaaaa'; end; SQL> var p1 varchar2(1); SQL> var p2 varchar2(1); SQL> var p3 varchar2(1); SQL> exec :p2 :='a'; SQL> exec proc1(:p1,:p2,:p3);
Ôڸùý³ÌÖУ¬p_para2±»¸³ÓèÁË20¸ö×Ö·ûa.
¶øÔÚÍⲿµÄµ÷Óùý³ÌÖУ¬p2Õâ¸ö²ÎÊý½ö½ö±»¶¨ÒåΪvarchar2(1).
¶ø°Ñp2×÷Ϊ²ÎÊýµ÷ÓÃÕâ¸ö¹ý³Ì£¬È´²¢Ã»Óб¨´í¡£¶øÇÒËüµÄÕæʵֵ¾ÍÊÇ20¸öa
- SQL> select dump(:p2) from dual;
- DUMP(:P2)
- ---------------------------------------------------------------------------
- Typ=1 Len=20: 97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97
- p2
- ---------
- aaaaaaaaaaaaaaaaaaaa
- ÔÙÀ´¿´¿´IN OUT²ÎÊýµÄ¿í¶È
- create or replace procedure proc1(
- p_para1 varchar2,
- p_para2 out varchar2,
- p_para3 in out varchar2
- )as
- v_name varchar2(2);
- begin
- p_para3 :='aaaaaaaaaaaaaaaaaaaa';
- end;
- SQL> var p1 varchar2(1);
- SQL> var p2 varchar2(1);
- SQL> var p3 varchar2(1);
- SQL> exec proc1(:p1,:p2,:p3);
SQL> select dump(:p2) from dual; DUMP(:P2) --------------------------------------------------------------------------- Typ=1 Len=20: 97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97 p2 --------- aaaaaaaaaaaaaaaaaaaa ÔÙÀ´¿´¿´IN OUT²ÎÊýµÄ¿í¶È create or replace procedure proc1( p_para1 varchar2, p_para2 out varchar2, p_para3 in out varchar2 )as v_name varchar2(2); begin p_para3 :='aaaaaaaaaaaaaaaaaaaa'; end; SQL> var p1 varchar2(1); SQL> var p2 varchar2(1); SQL> var p3 varchar2(1); SQL> exec proc1(:p1,:p2,:p3);
Ö´ÐÐÕâ¸ö¹ý³Ì£¬ÈÔÈ»ÕýÈ·Ö´ÐС£
¿É¼û£¬¶ÔÓÚIN²ÎÊý£¬Æä¿í¶ÈÊÇÓÉÍⲿ¾ö¶¨¡£
¶ÔÓÚOUT ºÍIN OUT ²ÎÊý£¬Æä¿í¶ÈÊÇÓÉ´æ´¢¹ý³ÌÄÚ²¿¾ö¶¨¡£
Òò´Ë£¬ÔÚд´æ´¢¹ý³Ìʱ£¬¶Ô²ÎÊýµÄ¿í¶È½øÐÐ˵Ã÷ÊǷdz£ÓбØÒªµÄ£¬×îÃ÷Öǵķ½·¨¾ÍÊDzÎÊýµÄÊý¾ÝÀàÐÍʹÓÃ%type¡£ÕâÑùË«·½¾Í´ï³ÉÁËÒ»Ö¡£
1.3 ²ÎÊýµÄĬÈÏÖµ
´æ´¢¹ý³ÌµÄ²ÎÊý¿ÉÒÔÉèÖÃĬÈÏÖµ
- create or replace procedure procdefault(p1 varchar2,
- p2 varchar2 default 'mark')
- as
- begin
- dbms_output.put_line(p2);
- end;
- SQL> set serveroutput on;
- SQL> exec procdefault('a');
create or replace procedure procdefault(p1 varchar2, p2 varchar2 default 'mark') as begin dbms_output.put_line(p2); end; SQL> set serveroutput on; SQL> exec procdefault('a');
mark
¿ÉÒÔͨ¹ýdefault ¹Ø¼ü×ÖΪ´æ´¢¹ý³ÌµÄ²ÎÊýÖ¸¶¨Ä¬ÈÏÖµ¡£ÔÚ¶Ô´æ´¢¹ý³Ìµ÷ÓÃʱ£¬¾Í¿ÉÒÔÊ¡ÂÔĬÈÏÖµ¡£
ÐèҪעÒâµÄÊÇ£ºÄ¬ÈÏÖµ½ö½öÖ§³ÖIN´«ÊäÀàÐ͵IJÎÊý¡£OUT ºÍ IN OUT²»ÄÜÖ¸¶¨Ä¬ÈÏÖµ
¶ÔÓÚÓÐĬÈÏÖµµÄ²ÎÊý²»ÊÇÅÅÔÚ×îºóµÄÇé¿ö¡£
- create or replace procedure procdefault2(p1 varchar2 default 'remark',
- p2 varchar2 )
- as
- begin
- dbms_output.put_line(p1);
- end;
create or replace procedure procdefault2(p1 varchar2 default 'remark', p2 varchar2 ) as begin dbms_output.put_line(p1); end;
µÚÒ»¸ö²ÎÊýÓÐĬÈÏÖµ£¬µÚ¶þ¸ö²ÎÊýûÓС£Èç¹ûÎÒÃÇÏëʹÓõÚÒ»¸ö²ÎÊýµÄĬÈÏֵʱ
exec procdefault2('aa');
ÕâÑùÊǻᱨ´íµÄ¡£
ÄÇÔõô±äÄØ£¿¿ÉÒÔÖ¸¶¨²ÎÊýµÄÖµ¡£
SQL> exec procdefault2(p2 =>'aa');
remark
ÕâÑù¾ÍOKÁË£¬Ö¸¶¨aa´«¸ø²ÎÊýp2
2. ´æ´¢¹ý³ÌÄÚ²¿¿é
2.1 ÄÚ²¿¿é
ÎÒÃÇÖªµÀÁË´æ´¢¹ý³ÌµÄ½á¹¹£¬Óï¾ä¿éÓÉbegin¿ªÊ¼£¬ÒÔend½áÊø¡£ÕâЩ¿éÊÇ¿ÉÒÔǶÌס£ÔÚÓï¾ä¿éÖпÉÒÔǶÌ×ÈκÎÒÔϵĿ顣
- Declare ¡ begin ¡ exception ¡ end;
- create or replace procedure innerBlock(p1 varchar2)
- as
- o1 varchar2(10) := 'out1';
- begin
- dbms_output.put_line(o1);
- declare
- inner1 varchar2(20);
- begin
- inner1 :='inner1';
- dbms_output.put_line(inner1);
- declare
- inner2 varchar2(20);
- begin
- inner2 := 'inner2';
- dbms_output.put_line(inner2);
- end;
- exception
- when others then
- null;
- end;
- end;
Declare ¡ begin ¡ exception ¡ end; create or replace procedure innerBlock(p1 varchar2) as o1 varchar2(10) := 'out1'; begin dbms_output.put_line(o1); declare inner1 varchar2(20); begin inner1 :='inner1'; dbms_output.put_line(inner1); declare inner2 varchar2(20); begin inner2 := 'inner2'; dbms_output.put_line(inner2); end; exception when others then null; end; end;
ÐèҪעÒâ±äÁ¿µÄ×÷ÓÃÓò¡£
3.´æ´¢¹ý³ÌµÄ³£Óü¼ÇÉ
3.1 ÄÄÖÖ¼¯ºÏ?
ÎÒÃÇÔÚʹÓô洢¹ý³ÌµÄʱºò¾³£ÐèÒª´¦Àí¼Ç¼¼¯£¬Ò²¾ÍÊǶàÌõÊý¾Ý¼Ç¼¡£·ÖΪµ¥ÁжàÐкͶàÁжàÐУ¬ÕâЩÀàÐͶ¼¿ÉÒÔ³ÆΪ¼¯ºÏÀàÐÍ¡£ÎÒÃÇÔÚÕâÀï½øÐбȽÏÕâЩ¼¯ºÏÀàÐÍ£¬ÒÔ±ãÓÚÔÚ±à³Ìʱ×ö³öÕýÈ·µÄÑ¡Ôñ¡£
Ë÷Òý±í,Ò²³ÆΪpl/sql±í£¬²»ÄÜ´æ´¢ÓÚÊý¾Ý¿âÖУ¬ÔªËصĸöÊýûÓÐÏÞÖÆ,ϱê¿ÉÒÔΪ¸ºÖµ¡£
type t_table is table of varchar2(20) index by binary_integer; v_student t_table;
varchar2(20)±íʾ´æ·ÅÔªËصÄÊý¾ÝÀàÐÍ£¬binary_integer±íʾԪËØϱêµÄÊý¾ÝÀàÐÍ¡£
ǶÌ×±í£¬Ë÷Òý±íûÓÐ index by×Ó¾ä¾ÍÊÇǶÌ×±í£¬Ëü¿ÉÒÔ´æ·ÅÓÚÊý¾ÝÖУ¬ÔªËظöÊýÎÞÏÞ£¬Ï±ê´Ó1¿ªÊ¼£¬²¢ÇÒÐèÒª³õʼ»¯
type t_nestTable is table of varchar2(20); v_class t_nestTable ;
½öÊÇÕâÑùÉùÃ÷ÊDz»ÄÜʹÓõģ¬±ØÐë¶ÔǶÌ×±í½øÐгõʼ»¯£¬¶ÔǶÌ×±í½øÐгõʼ»¯¿ÉÒÔʹÓÃËüµÄ¹¹Ô캯Êý
v_class :=t_nestTable('a','b','c');
±ä³¤Êý×飬±ä³¤Êý×éÓë¸ß¼¶ÓïÑÔµÄÊý×éÀàÐͷdz£ÏàËÆ£¬Ï±êÒÔ1¿ªÊ¼£¬ÔªËظöÊýÓÐÏÞ¡£
type t_array is varray (20) of varchar2(20);
varray(20)¾Í¶¨ÒåÁ˱䳤Êý×éµÄ×î´óÔªËظöÊýÊÇ20¸ö
±ä³¤Êý×éÓëǶÌ×±íÒ»Ñù£¬Ò²¿ÉÒÔÊÇÊý¾Ý±íÁеÄÊý¾ÝÀàÐÍ¡£
ͬʱ£¬±ä³¤Êý×éµÄʹÓÃÒ²ÐèÒªÊÂÏȳõʼ»¯¡£
ÀàÐÍ ¿É´æ´¢ÓÚÊý¾Ý¿â ÔªËظöÊý ÊÇ·ñÐè³õʼ»¯ ³õʼϱêÖµ
Ë÷Òý±í ·ñ ÎÞÏÞ ²»Ðè
ǶÌ×±í ¿É ÎÞÏÞ Ðè 1
¿É±äÊý×é ¿É ÓÐÏÞ(×Ô¶¨Òå) Ðè 1
Óɴ˿ɼû£¬Èç¹û½ö½öÊÇÔÚ´æ´¢¹ý³ÌÖе±×÷¼¯ºÏ±äÁ¿Ê¹Óã¬Ë÷Òý±íÊÇ×îºÃµÄÑ¡Ôñ¡£
3.2 Ñ¡ÓúÎÖÖÓαê?
ÏÔʾÓαê·ÖΪ£ºÆÕͨÓα꣬²ÎÊý»¯ÓαêºÍÓαê±äÁ¿ÈýÖÖ¡£
ÏÂÃæÒÔÒ»¸ö¹ý³ÌÀ´½øÐÐ˵Ã÷
- create or replace procedure proccursor(p varchar2)
- as
- v_rownum number(10) := 1;
- cursor c_postype is select pos_type from pos_type_tbl where rownum =1;
- cursor c_postype1 is select pos_type from pos_type_tbl where rownum = v_rownum;
- cursor c_postype2(p_rownum number) is select pos_type from pos_type_tbl where rownum = p_rownum;
- type t_postype is ref cursor ;
- c_postype3 t_postype;
- v_postype varchar2(20);
- begin
- open c_postype;
- fetch c_postype into v_postype;
- dbms_output.put_line(v_postype);
- close c_postype;
- open c_postype1;
- fetch c_postype1 into v_postype;
- dbms_output.put_line(v_postype);
- close c_postype1;
- open c_postype2(1);
- fetch c_postype2 into v_postype;
- dbms_output.put_line(v_postype);
- close c_postype2;
- open c_postype3 for select pos_type from pos_type_tbl where rownum =1;
- fetch c_postype3 into v_postype;
- dbms_output.put_line(v_postype);
- close c_postype3;
- end;
create or replace procedure proccursor(p varchar2) as v_rownum number(10) := 1; cursor c_postype is select pos_type from pos_type_tbl where rownum =1; cursor c_postype1 is select pos_type from pos_type_tbl where rownum = v_rownum; cursor c_postype2(p_rownum number) is select pos_type from pos_type_tbl where rownum = p_rownum; type t_postype is ref cursor ; c_postype3 t_postype; v_postype varchar2(20); begin open c_postype; fetch c_postype into v_postype; dbms_output.put_line(v_postype); close c_postype; open c_postype1; fetch c_postype1 into v_postype; dbms_output.put_line(v_postype); close c_postype1; open c_postype2(1); fetch c_postype2 into v_postype; dbms_output.put_line(v_postype); close c_postype2; open c_postype3 for select pos_type from pos_type_tbl where rownum =1; fetch c_postype3 into v_postype; dbms_output.put_line(v_postype); close c_postype3; end;
cursor c_postype is select pos_type from pos_type_tbl where rownum =1
ÕâÒ»¾äÊǶ¨ÒåÁËÒ»¸ö×îÆÕͨµÄÓα꣬°ÑÕû¸ö²éѯÒѾдËÀ,µ÷ÓÃʱ²»¿ÉÒÔ×÷Èκθı䡣
cursor c_postype1 is select pos_type from pos_type_tbl where rownum = v_rownum;
ÕâÒ»¾ä²¢Ã»ÓÐдËÀ£¬²éѯ²ÎÊýÓɱäÁ¿v_rownumÀ´¾ö¶¨¡£ÐèҪעÒâµÄÊÇv_rownum±ØÐëÔÚÕâ¸öÓα궨Òå֮ǰÉùÃ÷¡£
cursor c_postype2(p_rownum number) is select pos_type from pos_type_tbl where rownum = p_rownum;
ÕâÒ»ÌõÓï¾äÓëµÚ¶þÌõ×÷ÓÃÏàËÆ£¬¶¼ÊÇ¿ÉÒÔΪÓαêʵÏÖ¶¯Ì¬µÄ²éѯ¡£µ«ÊÇËü½øÒ»²½µÄËõСÁ˲ÎÊýµÄ×÷ÓÃÓò·¶Î§¡£µ«ÊǿɶÁÐÔ½µµÍÁ˲»ÉÙ¡£
type t_postype is ref cursor ;
c_postype3 t_postype;
Ïȶ¨ÒåÁËÒ»¸öÒýÓÃÓαêÀàÐÍ£¬È»ºóÔÙÉùÃ÷ÁËÒ»¸öÓαê±äÁ¿¡£
open c_postype3 for select pos_type from pos_type_tbl where rownum =1;
È»ºóÔÙÓÃopen for À´´ò¿ªÒ»¸ö²éѯ¡£ÐèҪעÒâµÄÊÇËü¿ÉÒÔ¶à´ÎʹÓÃ,ÓÃÀ´´ò¿ª²»Í¬µÄ²éѯ¡£
´Ó¶¯Ì¬ÐÔÀ´Ëµ£¬Óαê±äÁ¿ÊÇ×îºÃÓõģ¬µ«ÊÇÔĶÁÐÔÒ²ÊÇ×î²îµÄ¡£
×¢Ò⣬ÓαêµÄ¶¨ÒåÖ»ÄÜÓÃʹ¹Ø¼ü×ÖIS£¬ËüÓëAS²»Í¨Óá£
3.3 ÓαêÑ»·×î¼Ñ²ßÂÔ
ÎÒÃÇÔÚ½øÐÐPL/SQL±à³Ìʱ£¬¾³£ÐèҪѻ·¶ÁÈ¡½á¹û¼¯µÄÊý¾Ý¡£½øÐÐÖðÐд¦Àí£¬Õâ¸ö¹ý³Ì¾ÍÐèÒª¶ÔÓαê½øÐÐÑ»·¡£¶ÔÓαê½øÐÐÑ»·µÄ·½·¨ÓжàÖÖ£¬ÎÒÃÇÔÚ´ËÒ»Ò»·ÖÎö¡£
- create or replace procedure proccycle(p varchar2)
- as
- cursor c_postype is select pos_type, description from pos_type_tbl where rownum < 6;
- v_postype varchar2(20);
- v_description varchar2(50);
- begin
- open c_postype;
- if c_postype%found then
- dbms_output.put_line('found true');
- elsif c_postype%found = false then
- dbms_output.put_line('found false');
- else
- dbms_output.put_line('found null');
- end if;
- loop
- fetch c_postype into v_postype,v_description ;
- exit when c_postype%notfound;
- dbms_output.put_line('postype:'||v_postype||',description:'||v_description);
- end loop;
- close c_postype;
- dbms_output.put_line('---loop end---');
- open c_postype;
- fetch c_postype into v_postype,v_description;
- while c_postype%found loop
- dbms_output.put_line('postype:'||v_postype||',description:'||v_description);
- fetch c_postype into v_postype,v_description ;
- end loop;
- close c_postype;
- dbms_output.put_line('---while end---');
- for v_pos in c_postype loop
- v_postype := v_pos.pos_type;
- v_description := v_pos.description;
- dbms_output.put_line('postype:'||v_postype||',description:'||v_description);
- end loop;
- dbms_output.put_line('---for end---');
- end;
create or replace procedure proccycle(p varchar2) as cursor c_postype is select pos_type, description from pos_type_tbl where rownum < 6; v_postype varchar2(20); v_description varchar2(50); begin open c_postype; if c_postype%found then dbms_output.put_line('found true'); elsif c_postype%found = false then dbms_output.put_line('found false'); else dbms_output.put_line('found null'); end if; loop fetch c_postype into v_postype,v_description ; exit when c_postype%notfound; dbms_output.put_line('postype:'||v_postype||',description:'||v_description); end loop; close c_postype; dbms_output.put_line('---loop end---'); open c_postype; fetch c_postype into v_postype,v_description; while c_postype%found loop dbms_output.put_line('postype:'||v_postype||',description:'||v_description); fetch c_postype into v_postype,v_description ; end loop; close c_postype; dbms_output.put_line('---while end---'); for v_pos in c_postype loop v_postype := v_pos.pos_type; v_description := v_pos.description; dbms_output.put_line('postype:'||v_postype||',description:'||v_description); end loop; dbms_output.put_line('---for end---'); end;
ʹÓÃÓαê֮ǰÐèÒª¿ª´òÓαê,open cursor£¬Ñ»·ÍêºóÔٹرÕÓαêclose cursor.
ÕâÊÇʹÓÃÓαêÓ¦¸ÃÉ÷¼ÇÓÚÐĵķ¨Ôò¡£
ÉÏÃæµÄ¹ý³ÌÑÝʾÁËÓαêÑ»·µÄÈýÖÖ·½·¨¡£
ÔÚÌÖÂÛÑ»··½·¨Ö®Ç°£¬ÎÒÃÇÏÈ¿´¿´%foundºÍ%notfoundÕâЩÓαêµÄÊôÐÔ¡£
- open c_postype;
- if c_postype%found then
- dbms_output.put_line('found true');
- elsif c_postype%found = false then
- dbms_output.put_line('found false');
- else
- dbms_output.put_line('found null');
- end if;
open c_postype; if c_postype%found then dbms_output.put_line('found true'); elsif c_postype%found = false then dbms_output.put_line('found false'); else dbms_output.put_line('found null'); end if;
ÔÚ´ò¿ªÒ»¸öÓαêÖ®ºó£¬ÂíÉϼì²éËüµÄ%found»ò%notfoundÊôÐÔ£¬ËüµÃµ½µÄ½á¹û¼´²»ÊÇtrueÒ²²»ÊÇfalse.¶øÊÇnull.±ØÐëÖ´ÐÐÒ»ÌõfetchÓï¾äºó£¬ÕâЩÊôÐÔ²ÅÓÐÖµ¡£
µÚÒ»ÖÖʹÓÃloop Ñ»·
- loop
- fetch c_postype into v_postype,v_description ;
- exit when c_postype%notfound;
- ¡¡
- end loop
loop fetch c_postype into v_postype,v_description ; exit when c_postype%notfound; ¡¡ end loop
ÕâÀïÐèҪעÒ⣬exit whenÓï¾äÒ»¶¨Òª½ô¸úÔÚfetchÖ®ºó¡£±Ø±ÜÃâ¶àÓàµÄÊý¾Ý´¦Àí¡£
´¦ÀíÂß¼ÐèÒª¸úÔÚexit whenÖ®ºó¡£ÕâÒ»µãÐèÒª¶à¼ÓСÐÄ¡£
Ñ»·½áÊøºóÒª¼ÇµÃ¹Ø±ÕÓαꡣ
µÚ¶þÖÖʹÓÃwhileÑ»·¡£
- fetch c_postype into v_postype,v_description;
- while c_postype%found loop
- ¡¡
- fetch c_postype into v_postype,v_description ;
- end loop;
fetch c_postype into v_postype,v_description; while c_postype%found loop ¡¡ fetch c_postype into v_postype,v_description ; end loop;
ÎÒÃÇÖªµÀÁËÒ»¸öÓαê´ò¿ªºó£¬±ØÐëÖ´ÐÐÒ»´ÎfetchÓï¾ä£¬ÓαêµÄÊôÐԲŻáÆð×÷Óá£ËùÒÔʹÓÃwhile Ñ»·Ê±£¬¾ÍÐèÒªÔÚÑ»·Ö®Ç°½øÐÐÒ»´Îfetch¶¯×÷¡£
¶øÇÒÊý¾Ý´¦Àí¶¯×÷±ØÐë·ÅÔÚÑ»·ÌåÄÚµÄfetch·½·¨Ö®Ç°¡£Ñ»·ÌåÄÚµÄfetch·½·¨Òª·ÅÔÚ×îºó¡£·ñÔò¾Í»á¶à´¦ÀíÒ»´Î¡£ÕâÒ»µãÒ²Òª·Ç³£µÄСÐÄ¡£
×ÜÖ®£¬Ê¹ÓÃwhileÀ´Ñ»·´¦ÀíÓαêÊÇ×Ôӵķ½·¨¡£
µÚÈýÖÖ forÑ»·
- for v_pos in c_postype loop
- v_postype := v_pos.pos_type;
- v_description := v_pos.description;
- ¡
- end loop;
for v_pos in c_postype loop v_postype := v_pos.pos_type; v_description := v_pos.description; ¡ end loop;
¿É¼ûforÑ»·ÊDZȽϼòµ¥ÊµÓõķ½·¨¡£
Ê×ÏÈ£¬Ëü»á×Ô¶¯openºÍcloseÓαꡣ½â¾öÁËÄãÍü¼Ç´ò¿ª»ò¹Ø±ÕÓαêµÄ·³ÄÕ¡£
ÆäËü,×Ô¶¯¶¨ÒåÁËÒ»¸ö¼Ç¼ÀàÐͼ°ÉùÃ÷¸ÃÀàÐ͵ıäÁ¿£¬²¢×Ô¶¯fetchÊý¾Ýµ½Õâ¸ö±äÁ¿ÖС£
ÎÒÃÇÐèҪעÒâv_pos Õâ¸ö±äÁ¿ÎÞÐèÒªÔÚÑ»·Íâ½øÐÐÉùÃ÷£¬ÎÞÐèҪΪÆäÖ¸¶¨Êý¾ÝÀàÐÍ¡£
ËüÓ¦¸ÃÊÇÒ»¸ö¼Ç¼ÀàÐÍ£¬¾ßÌåµÄ½á¹¹ÊÇÓÉÓαê¾ö¶¨µÄ¡£
Õâ¸ö±äÁ¿µÄ×÷ÓÃÓò½ö½öÊÇÔÚÑ»·ÌåÄÚ¡£
°Ñv_pos¿´×÷Ò»¸ö¼Ç¼±äÁ¿¾Í¿ÉÒÔÁË£¬Èç¹ûÒª»ñµÃijһ¸öÖµ¾ÍÏñµ÷ÓüǼһÑù¾Í¿ÉÒÔÁË¡£
Èçv_pos.pos_type
Óɴ˿ɼû£¬forÑ»·ÊÇÓÃÀ´Ñ»·ÓαêµÄ×îºÃ·½·¨¡£¸ßЧ£¬¼ò½à£¬°²È«¡£
µ«Òź¶µÄÊÇ£¬³£³£¼ûµ½µÄÈ´ÊǵÚÒ»ÖÖ·½·¨¡£ËùÒÔ´Ó½ñÖ®ºóµÃ¸Ä±äÕâ¸öÏ°¹ßÁË¡£
3.4 select into²»¿ÉºõÊÓµÄÎÊÌâ
ÎÒÃÇÖªµÀÔÚpl/sqlÖÐÒªÏë´ÓÊý¾Ý±íÖÐÏò±äÁ¿¸³Öµ£¬ÐèҪʹÓÃselect into ×Ӿ䡣
µ«ÊÇËü»á´ø¶¯À´Ò»Ð©ÎÊÌ⣬Èç¹û²éѯûÓмǼʱ£¬»áÅ׳öno_data_foundÒì³£¡£
Èç¹ûÓжàÌõ¼Ç¼ʱ£¬»áÅ׳ötoo_many_rowsÒì³£¡£
Õâ¸öÊDZȽÏÔã¸âµÄ¡£Ò»µ©Å׳öÁËÒì³££¬¾Í»áÈùý³ÌÖжϡ£ÌرðÊÇno_data_foundÕâÖÖÒì³££¬Ã»ÓÐÑÏÖص½ÒªÈóÌÐòÖжϵĵز½£¬¿ÉÒÔÍêÈ«½»¸øÓɳÌÐò½øÐд¦Àí¡£
- create or replace procedure procexception(p varchar2)
- as
- v_postype varchar2(20);
- begin
- select pos_type into v_postype from pos_type_tbl where 1=0;
- dbms_output.put_line(v_postype);
- end;
create or replace procedure procexception(p varchar2) as v_postype varchar2(20); begin select pos_type into v_postype from pos_type_tbl where 1=0; dbms_output.put_line(v_postype); end;
Ö´ÐÐÕâ¸ö¹ý³Ì
- SQL> exec procexception('a');
- ±¨´í
- ORA-01403: no data found
- ORA-06512: at "LIFEMAN.PROCEXCEPTION", line 6
- ORA-06512: at line 1
SQL> exec procexception('a'); ±¨´í ORA-01403: no data found ORA-06512: at "LIFEMAN.PROCEXCEPTION", line 6 ORA-06512: at line 1
´¦ÀíÕâ¸öÓÐÈý¸ö°ì·¨
1£® Ö±½Ó¼ÓÉÏÒì³£´¦Àí¡£
- create or replace procedure procexception(p varchar2)
- as
- v_postype varchar2(20);
- begin
- select pos_type into v_postype from pos_type_tbl where 1=0;
- dbms_output.put_line(v_postype);
- exception
- when no_data_found then
- dbms_output.put_line('ûÕÒµ½Êý¾Ý');
- end;
create or replace procedure procexception(p varchar2) as v_postype varchar2(20); begin select pos_type into v_postype from pos_type_tbl where 1=0; dbms_output.put_line(v_postype); exception when no_data_found then dbms_output.put_line('ûÕÒµ½Êý¾Ý'); end;
ÕâÑù×ö»»ÌÀ²»»»Ò©£¬³ÌÐòÈÔÈ»±»Öжϡ£¿ÉÄÜÕâÑù²»ÊÇÎÒÃÇËùÏëÒªµÄ¡£
2. select into×öΪһ¸ö¶ÀÁ¢µÄ¿é£¬ÔÚÕâ¸ö¿éÖнøÐÐÒì³£´¦Àí
- create or replace procedure procexception(p varchar2)
- as
- v_postype varchar2(20);
- begin
- begin
- select pos_type into v_postype from pos_type_tbl where 1=0;
- dbms_output.put_line(v_postype);
- exception
- when no_data_found then
- v_postype := '';
- end;
- dbms_output.put_line(v_postype);
- end;
create or replace procedure procexception(p varchar2) as v_postype varchar2(20); begin begin select pos_type into v_postype from pos_type_tbl where 1=0; dbms_output.put_line(v_postype); exception when no_data_found then v_postype := ''; end; dbms_output.put_line(v_postype); end;
ÕâÊÇÒ»ÖֱȽϺõĴ¦Àí·½Ê½ÁË¡£²»»áÒòΪÕâ¸öÒì³£¶øÒýÆð³ÌÐòÖжϡ£
3.ʹÓÃÓαê
- create or replace procedure procexception(p varchar2)
- as
- v_postype varchar2(20);
- cursor c_postype is select pos_type from pos_type_tbl where 1=0;
- begin
- open c_postype;
- fetch c_postype into v_postype;
- close c_postype;
- dbms_output.put_line(v_postype);
- end;
create or replace procedure procexception(p varchar2) as v_postype varchar2(20); cursor c_postype is select pos_type from pos_type_tbl where 1=0; begin open c_postype; fetch c_postype into v_postype; close c_postype; dbms_output.put_line(v_postype); end;
ÕâÑù¾ÍÍêÈ«µÄ±ÜÃâÁËno_data_foundÒì³£¡£ÍêÈ«½»ÓɳÌÐòÔ±À´½øÐпØÖÆÁË¡£
µÚ¶þÖÖÇé¿öÊÇtoo_many_rows Òì³£µÄÎÊÌâ¡£
Too_many_rows Õâ¸öÎÊÌâ±ÈÆðno_data_foundÒª¸´ÔÓһЩ¡£
¸øÒ»¸ö±äÁ¿¸³ÖµÊ±£¬µ«ÊDzéѯ½á¹ûÓжà¸ö¼Ç¼¡£
´¦ÀíÕâÖÖÎÊÌâÒ²ÓÐÁ½ÖÖÇé¿ö£º
1£® ¶àÌõÊý¾ÝÊÇ¿ÉÒÔ½ÓÊܵģ¬Ò²¾ÍÊÇ˵´Ó½á¹û¼¯ÖÐËæ±ãÈ¡Ò»¸öÖµ¾ÍÐС£ÕâÖÖÇé¿öÓ¦¸ÃºÜ¼«¶ËÁË°É£¬Èç¹û³öÏÖÕâÖÖÇé¿ö£¬Ò²ËµÃ÷Á˳ÌÐòµÄÑϽ÷ÐÔ´æÔÚÎÊÌâ¡£
2£® ¶àÌõÊý¾ÝÊDz»¿ÉÒÔ±»½ÓÊܵģ¬ÔÚÕâÖÖÇé¿ö¿Ï¶¨ÊdzÌÐòµÄÂß¼³öÁËÎÊÌ⣬Ҳ˵ÊÇ˵ÔÀ´¸ù±¾¾Í²»»áÏëµ½Ëü»á²úÉú¶àÌõ¼Ç¼¡£
¶ÔÓÚµÚÒ»ÖÖÇé¿ö£¬¾Í±ØÐë²ÉÓÃÓαêÀ´´¦Àí£¬¶ø¶ÔÓÚµÚ¶þÖÖÇé¿ö¾Í±ØÐëʹÓÃÄÚ²¿¿éÀ´´¦Àí£¬ÖØÐÂÅ׳öÒì³£¡£
¶àÌõÊý¾Ý¿ÉÒÔ½ÓÊÜ,Ëæ±ãÈ¡Ò»Ìõ£¬Õâ¸ö¸úno_data_foundµÄ´¦Àí·½Ê½Ò»Ñù£¬Ê¹ÓÃÓαꡣ
ÎÒÕâÀï½ö˵µÚ¶þÖÖÇé¿ö£¬²»¿É½ÓÊܶàÌõÊý¾Ý£¬µ«ÊDz»ÒªÍüÁË´¦Àíno_data_foundŶ¡£Õâ¾Í²»ÄÜʹÓÃÓαêÁË£¬±ØÐëʹÓÃÄÚ²¿¿é¡£
- create or replace procedure procexception2(p varchar2)
- as
- v_postype varchar2(20);
- begin
- begin
- select pos_type into v_postype from pos_type_tbl where rownum < 5;
- exception
- when no_data_found then
- v_postype :=null;
- when too_many_rows then
- raise_application_error(-20000,'¶Ôv_postype¸³ÖµÊ±£¬ÕÒµ½¶àÌõÊý¾Ý');
- end;
- dbms_output.put_line(v_postype);
- end;
create or replace procedure procexception2(p varchar2) as v_postype varchar2(20); begin begin select pos_type into v_postype from pos_type_tbl where rownum < 5; exception when no_data_found then v_postype :=null; when too_many_rows then raise_application_error(-20000,'¶Ôv_postype¸³ÖµÊ±£¬ÕÒµ½¶àÌõÊý¾Ý'); end; dbms_output.put_line(v_postype); end;
ÐèҪעÒâµÄÊÇÒ»¶¨Òª¼ÓÉ϶Ôno_data_foundµÄ´¦Àí£¬¶Ô³öÏÖ¶àÌõ¼Ç¼µÄÇé¿öÔò¼ÌÐøÅ׳öÒì³££¬ÈÃÉÏÒ»²ãÀ´´¦Àí¡£
×ÜÖ®¶ÔÓÚselect intoµÄÓï¾äÐèҪעÒâÕâÁ½ÖÖÇé¿öÁË¡£ÐèÒªÍ×µ±´¦Àí°¡¡£
3.5 ÔÚ´æ´¢¹ý³ÌÖзµ»Ø½á¹û¼¯
ÎÒÃÇʹÓô洢¹ý³Ì¶¼ÊÇ·µ»ØÖµ¶¼Êǵ¥Ò»µÄ£¬ÓÐʱÎÒÃÇÐèÒª´Ó¹ý³ÌÖзµ»ØÒ»¸ö¼¯ºÏ¡£¼´¶àÌõÊý¾Ý¡£ÕâÓм¸ÖÖ½â¾ö·½°¸¡£±È½Ï¼òµ¥µÄ×ö·¨ÊÇдÁÙʱ±í£¬µ«ÊÇÕâÖÖ×ö·¨²»Áé»î¡£¶øÇÒά»¤Âé·³¡£ÎÒÃÇ¿ÉÒÔʹÓÃǶÌ×±íÀ´ÊµÏÖ.ûÓÐÒ»¸ö¼¯ºÏÀàÐÍÄܹ»ÓëjavaµÄjdbcÀàÐÍÆ¥Åä¡£Õâ¾ÍÊǶÔÏóÓë¹ØϵÊý¾Ý¿âµÄ×迹°É¡£Êý¾Ý¿âµÄ¶ÔÏó²¢²»Äܹ»Íêȫת»»Îª±à³ÌÓïÑԵĶÔÏ󣬻¹±ØÐëʹÓùØϵÊý¾Ý¿âµÄ´¦Àí·½Ê½¡£
- create or replace package procpkg is
- type refcursor is ref cursor;
- procedure procrefcursor(p varchar2, p_ref_postypeList out refcursor);
- end procpkg;
- create or replace package body procpkg is
- procedure procrefcursor(p varchar2, p_ref_postypeList out refcursor)
- is
- v_posTypeList PosTypeTable;
- begin
- v_posTypeList :=PosTypeTable();--³õʼ»¯Ç¶Ì×±í
- v_posTypeList.extend;
- v_posTypeList(1) := PosType('A001','¿Í»§×ÊÁϱä¸ü');
- v_posTypeList.extend;
- v_posTypeList(2) := PosType('A002','ÍÅÌå×ÊÁϱä¸ü');
- v_posTypeList.extend;
- v_posTypeList(3) := PosType('A003','ÊÜÒæÈ˱ä¸ü');
- v_posTypeList.extend;
- v_posTypeList(4) := PosType('A004','ÐøÆÚ½»·Ñ·½Ê½±ä¸ü');
- open p_ref_postypeList for select * from table(cast (v_posTypeList as PosTypeTable));
- end;
- end procpkg;
create or replace package procpkg is type refcursor is ref cursor; procedure procrefcursor(p varchar2, p_ref_postypeList out refcursor); end procpkg; create or replace package body procpkg is procedure procrefcursor(p varchar2, p_ref_postypeList out refcursor) is v_posTypeList PosTypeTable; begin v_posTypeList :=PosTypeTable();--³õʼ»¯Ç¶Ì×±í v_posTypeList.extend; v_posTypeList(1) := PosType('A001','¿Í»§×ÊÁϱä¸ü'); v_posTypeList.extend; v_posTypeList(2) := PosType('A002','ÍÅÌå×ÊÁϱä¸ü'); v_posTypeList.extend; v_posTypeList(3) := PosType('A003','ÊÜÒæÈ˱ä¸ü'); v_posTypeList.extend; v_posTypeList(4) := PosType('A004','ÐøÆÚ½»·Ñ·½Ê½±ä¸ü'); open p_ref_postypeList for select * from table(cast (v_posTypeList as PosTypeTable)); end; end procpkg;
ÔÚ°üÍ·Öж¨ÒåÁËÒ»¸öÓαê±äÁ¿,²¢°ÑËü×÷Ϊ´æ´¢¹ý³ÌµÄ²ÎÊýÀàÐÍ¡£
ÔÚ´æ´¢¹ý³ÌÖж¨ÒåÁËÒ»¸öǶÌ×±í±äÁ¿£¬¶ÔÊý¾Ýд½øǶÌ×±íÖУ¬È»ºó°ÑǶÌ×±í½øÐÐÀ -
C#µ÷ÓÃExcel
2009-03-27 10:55:01
ExcelÊÇ΢Èí¹«Ë¾°ì¹«×Ô¶¯»¯Ì×¼þÖеÄÒ»¸öÈí¼þ£¬ËûÖ÷ÒªÊÇÓÃÀ´´¦Àíµç×Ó±í¸ñ¡£ExcelÒÔÆ书ÄÜÇ¿´ó£¬½çÃæÓѺõÈÊܵ½ÁËÐí¶àÓû§µÄ»¶Ó¡£ÔÚÉè¼ÆÓ¦ÓÃϵͳʱ£¬¶ÔÓÚ²»Í¬µÄÓû§£¬ËûÃǶÔÓÚ´òÓ¡µÄÐèÇóÊDz»Ò»ÑùµÄ£¬Èç¹ûҪʹµÃ³ÌÐòÖеĴòÓ¡¹¦ÄÜÊÊÓÃÓÚÿһ¸öÓû§£¬¿ÉÒÔÏëÏó³ÌÐòÉè¼ÆÊÇÊ®·Ö¸´Ôӵġ£ÓÉÓÚExcel±í¸ñµÄ¹¦ÄÜÇ¿´ó£¬ÓÖÓÉÓÚ¼¸ºõÿһ̨»úÆ÷¶¼°²×°ÁËËü£¬Èç¹û°Ñ³ÌÐò´¦ÀíµÄ½á¹û·Åµ½Excel±í¸ñÖУ¬ÕâÑùÿһ¸öÓû§¾Í¿ÉÒÔ¸ù¾Ý×Ô¼ºµÄÐèÒªÔÚExcelÖж¨ÖÆ×Ô¼ºµÄ´òÓ¡¡£ÕâÑù²»½öʹµÃ³ÌÐòÉè¼Æ¼òµ¥£¬¶øÇÒÓÖÂú×ãÁËÖî¶àÓû§µÄÒªÇ󣬸ü¼ÓʵÓÃÁË¡£ÄÇôÓÃVisual C££ÈçºÎµ÷ÓÃExcel£¬ÈçºÎÓÖ°ÑÊý¾Ý´æ·Åµ½Excel±í¸ñÖУ¿±¾ÎľÍÀ´Ì½ÌÖÉÏÊöÎÊÌâµÄ½â¾ö°ì·¨¡£
¡¡¡¡Excel¶ÔÏó
¡¡¡¡Î¢ÈíµÄExcel¶ÔÏóÄ£ÐÍ°üÀ¨ÁË128¸ö²»Í¬µÄ¶ÔÏ󣬴ӾØÐΣ¬Îı¾¿òµÈ¼òµ¥µÄ¶ÔÏóµ½Í¸ÊÓ±í£¬Í¼±íµÈ¸´ÔӵĶÔÏó£®ÏÂÃæÎÒÃǼòµ¥½éÉÜÒ»ÏÂÆäÖÐ×îÖØÒª£¬Ò²ÊÇÓõÃ×î¶àµÄËĸö¶ÔÏó¡£
¡¡¡¡(1) Application¶ÔÏó¡£Application¶ÔÏó´¦ÓÚExcel¶ÔÏó²ã´Î½á¹¹µÄ¶¥²ã£¬±íʾExcel×ÔÉíµÄÔËÐл·¾³¡£
¡¡¡¡(2) Workbook¶ÔÏó¡£Workbook¶ÔÏóÖ±½ÓµØ´¦ÓÚApplication¶ÔÏóµÄϲ㣬±íʾһ¸öExcel¹¤×÷±¡Îļþ¡£
¡¡¡¡(3) Worksheet¶ÔÏó¡£Worksheet¶ÔÏó°üº¬ÓÚWorkbook¶ÔÏ󣬱íʾһ¸öExcel¹¤×÷±í¡£
¡¡¡¡(4) Range¶ÔÏó¡£Range¶ÔÏó°üº¬ÓÚWorksheet¶ÔÏ󣬱íʾExcel¹¤×÷±íÖеÄÒ»¸ö»ò¶à¸öµ¥Ôª¸ñ¡£
¡¡¡¡C#ÖеÄÊܹܴúÂëºÍ·ÇÊܹܴúÂë
¡¡¡¡ÔÚ.NET¹«ÓÃÓïÑÔ¿ò¼ÜÄÚÔËÐеijÌÐòΪÊܹܴúÂë¡£ÊܹܴúÂëÔÚ³ÌÐòÖÐËùÓÐÀàÐͶ¼Êܵ½Ñϸñ¼ì²é£¬Ã»ÓÐÖ¸Õ룬¶ÔÄÚ´æµÄ¹ÜÀíÍêÈ«ÓÉÔËÐÐϵͳ¿ØÖÆ¡£ÊÜ¿Ø״̬Ï£¬±àд³ÌÐò¸üΪÈÝÒ×£¬ÇÒ¸üÉÙ³ö´í£¬ÎÒÃÇ¿ÉÒÔ»¨¸ü¶àµÄʱ¼äÔÚ½â¾öʵ¼ÊÎÊÌâÉ϶ø²»ÊÇÔÚ¼ÆËã»úÓïÑÔÎÊÌâÉÏ¡£Ïà¶Ô¶øÑÔ£¬ÄÇЩÔÚ.NET¿ò¼ÜÍâÔËÐеijÌÐòΪ·ÇÊܹܴúÂë¡£±ÈÈ磺COM×é¼þ¡¢ActiveX×é¼þ¡¢Win32 APIº¯Êý¡¢Ö¸ÕëÔËËãµÈ¡£C#±à³ÌÖÐÔÚijЩÌض¨Çé¿öÏ£¬ÐèÒªÔËÓ÷ÇÊܹܴúÂ룬ÀýÈ磬ҪÀûÓÃÒ»¸ö³ÉÊìµÄCOM×é¼þ£¬»òÕßµ÷ÓÃÒ»¸öAPIº¯Êý£¬»òÕßÓÃÖ¸ÕëÈ¥±àдʵʱ/¸ßЧ³ÌÐòµÈ¡£
¡¡¡¡Visual C#Öе÷ÓÃExcelµÄCOM×é¼þ
¡¡¡¡Ò»¸ö.NET×é¼þÊÂʵÉÏÊÇÒ»¸ö.NETϵÄDLL£¬Ëü°üº¬µÄ²»½öÊÇÔËÐгÌÐò±¾Éí£¬¸üÖØÒªµÄÊÇ°üº¬Õâ¸öDLLµÄÃèÊöÐÅÏ¢£¨Meta. Data,¼´ÔªÊý¾Ý£©£¬¶øÒ»¸öCOM×é¼þÊÇÓÃÆäÀà¿â£¨TLB£©´¢´æÆäÃèÊöÐÅÏ¢¡£ÕâЩCOM×é¼þ¶¼ÊÇ·ÇÊܹܴúÂ룬ҪÔÚVisual C££ÖÐʹÓÃÕâЩ·ÇÊܹܴúÂëµÄCOM×é¼þ£¬¾Í±ØÐë°ÑËûÃÇת»»³ÉÊܹܴúÂëµÄ.NET×é¼þ¡£ËùÒÔÔÚÓÃVisual C££µ÷ÓÃExcel±í¸ñ֮ǰ£¬±ØÐëÍê³É´ÓCOM×é¼þµÄ·ÇÊܹܴúÂëµ½ÊܹܴúÂëµÄÀà¿âµÄת»»¡£
¡¡¡¡1¡¢½«ExcelµÄCOM×é¼þת»»Îª.NET×é¼þ
¡¡¡¡ÔÚÏîÄ¿Öдò¿ªAdd Reference¶Ô»°¿ò£¬Ñ¡ÔñCOMÀ¸£¬Ö®ºóÔÚCOMÁбíÖÐÕÒµ½"Microsoft Excel 9.0 Object Library"£¨Office 2000£©£¬È»ºó½«Æä¼ÓÈëµ½ÏîÄ¿µÄReferencesÖм´¿É¡£Visual C#.NET»á×Ô¶¯²úÉúÏàÓ¦µÄ.NET×é¼þÎļþ£¬ÒÔºó¼´¿ÉÕý³£Ê¹Óá£
¡¡¡¡Õâ¸öת»»ÐγÉ.NET×é¼þ²»Äܵ¥¶ÀʹÓã¬Ëü²»¹ýÊÇÒÔÇ°µÄCOM×é¼þµÄÒ»¸öÍâ²ã°ü×°£¬ÔÚ.NETÖпÉÒÔͨ¹ýÕâ¸öÍâ²ã°ü×°È¥·¢ÏÖÔÀ´µÄCOM×é¼þ²¢µ÷ÓÃÆäÏàÓ¦µÄ½çÃ溯Êý¡£ËùÒÔËü±ØÐëÓëÔÀ´µÄCOM×é¼þÒ»ÆðÆð×÷Óá£
¡¡¡¡2¡¢Visual C££´ò¿ªExcel±í¸ñ
¡¡¡¡ÊÂʵÉÏ£¬ÔÚC#ÖÐʹÓÃÒ»¸ö¾×ª»»µÄCOM×é¼þºÍʹÓÃÈκÎÒ»¸öÆäËü.NET×é¼þÍêÈ«Ò»Ñù¡£¿ÉÒÔÓÃnew¹Ø¼ü×Ö´´½¨Ò»¸ö¾×ª»»µÄCOM×é¼þ£¬È»ºóÔÙÏñʹÓÃÈκÎÒ»¸öÆäËüC#¶ÔÏóÒ»ÑùʹÓÃÕâ¸ö×é¼þ¶ÔÏó¡£
¡¡¡¡ÔÚת»»ºóµÄ.NET×é¼þÖж¨ÒåÁËÒ»¸öÃüÃû¿Õ¼äExcel£¬ÔÚ´ËÃüÃû¿Õ¼äÖзâ×°ÁËÒ»¸öÀàApplication£¬Õâ¸öÀàºÍÆô¶¯Excel±í¸ñÓзdz£ÖØÒªµÄ¹Øϵ£¬ÔÚVisual C££ÖУ¬Ö»ÐèÒªÏÂÁÐÈýÐдúÂë¾Í¿ÉÒÔÍê³É´ò¿ªExcel±í¸ñµÄ¹¤×÷£¬¾ßÌåÈçÏ£º
Excel.Application excel = new Excel.Application ()£»//ÒýÓÃExcel¶ÔÏó
excel.Application.Workbooks.Add ( true )£»//ÒýÓÃExcel¹¤×÷²¾
excel.Visible = true £»//ʹExcel¿ÉÊÓ
¡¡¡¡µ«´ËʱµÄExcel±í¸ñÊÇÒ»¸ö¿ÕµÄ±í¸ñ£¬Ã»ÓÐÈκÎÄÚÈÝ£¬ÏÂÃæ¾ÍÀ´½éÉÜÈçºÎÍùExcel±í¸ñÖÐÊäÈëÊý¾Ý¡£¡¡¡¡3¡¢ÍùExcel±í¸ñÖÐÊäÈëÊý¾Ý
¡¡¡¡ÔÚÃüÃû¿Õ¼ä"Excel"ÖУ¬»¹¶¨ÒåÁËÒ»¸öÀà"Cell"£¬Õâ¸öÀàËù´ú±íµÄ¾ÍÊÇExcel±í¸ñÖеÄÒ»¸öµ¥Ôª¸ñ¡£Í¨¹ý¸ø"Cell"¸³Öµ£¬´Ó¶øʵÏÖÍùExcel±í¸ñÖÐÊäÈëÏàÓ¦µÄÊý¾Ý£¬ÏÂÁдúÂ빦ÄÜÊÇ´ò¿ªExcel±í¸ñ£¬²¢ÇÒÍù±í¸ñÊäÈëһЩÊý¾Ý¡£
Excel.Application excel = new Excel.Application () £»
excel.Application.Workbooks.Add ( true ) £»
excel.Cells[ 1 , 1 ] = "First Row First Column" £»
excel.Cells[ 1 , 2 ] = "First Row Second Column" £»
excel.Cells[ 2 , 1 ] = "Second Row First Column" £»
excel.Cells[ 2 , 2 ] = "Second Row Second Column" £»
excel.Visible = true ;¡¡¡¡4¡¢ÊµÀý
¡¡¡¡ÏÂÃæʵÀýÔÚC#ÖÐÁ¬½ÓOracleÊý¾Ý¿â(Name),´Ó±í(TableName)ÖжÁÈ¡Êý¾Ý,²¢Ð´ÈëExcel¡£
string cnString="Provider=msdaora.1;Data source=Name; ";
cnString=cnString+"user id=UserName;password=Password";
try
{
¡¡OleDbConnection cn=new OleDbConnection (cnString);
¡¡cn.Open ();
¡¡try
¡¡{
¡¡¡¡string s="select * from Name.TableName";
¡¡¡¡OleDbCommand cmd=new OleDbCommand (s,cn);
¡¡¡¡OleDbDataReader dr=cmd.ExecuteReader ();
¡¡¡¡Excel.Application xlApp = new Excel.Application();
¡¡¡¡if(xlApp==null){MessageBox.Show ("Can't open Excel!");return;}
¡¡¡¡xlApp.Application .Workbooks .Add (true);
¡¡¡¡int row=2,fieldcount;
¡¡¡¡fieldcount=dr.FieldCount ;
¡¡¡¡for(int col=0;col<fieldcount;col++) xlApp.Cells [1,col+1]=dr.GetName(col);
¡¡¡¡while (dr.Read ())
¡¡¡¡{
¡¡¡¡¡¡for(int col=0;col<fieldcount;col++)
¡¡¡¡¡¡¡¡xlApp.Cells [row,col+1]=dr.GetValue(col).ToString();
¡¡¡¡¡¡¡¡row++;
¡¡¡¡}
¡¡¡¡xlApp.Visible =true;
¡¡¡¡xlApp=null;
¡¡}
¡¡catch(Exception ex ){MessageBox.Show (ex.Message );}
¡¡finally {cn.Close();}
}
catch(Exception ex){MessageBox.Show (ex.Message );}
}
}
¡¡¡¡5¡¢°²×°Ò»¸öʹÓÃCOM×é¼þµÄ.NET³ÌÐò¡¡¡¡Èç¹ûÒª½«ÕâÑùµÄ³ÌÐò°²×°ÔËÐÐÔÚÁíһ̨»úÆ÷ÉÏ£¬ÄÇô³ýÁË°²×°ÔËÐгÌÐòÍ⣬»¹×öÈý¼þÊ¡£
¡¡¡¡Ê×ÏÈ£¬ÊÇ°²×°.NETÔËÐÐϵͳ¡£ÒòΪÈκÎÒ»¸ö.NET³ÌÐò¶¼²»ÄÜÀ뿪.NETÔËÐÐϵͳȥ¶ÀÁ¢ÔËÐС£
¡¡¡¡Æä´Î£¬Ëùµ÷ÓõÄCOM×é¼þ±ØÐëÒª°²×°ÔÚÄ¿±ê»úÆ÷ÉÏ¡£±¾ÀýÖдó¶àÊýÄ¿±ê»úÆ÷É϶¼×°ÓÐMicrosoft OfficeµÄExcel£¬Ò»°ã²»»áÓÐÕâ¸öÎÊÌâ¡£µ«Èç¹ûÊÇÁíÒ»¸öÓû§×Ô¶¨ÒåµÄCOM×é¼þ£¬ÄÇôÕâ¸öCOM×é¼þÔÚÔËÐÐ.NET³ÌÐò֮ǰ±ØÐëÏÈ°²×°ºÃ¡£
¡¡¡¡×îºó£¬×ª»»ºóµÄ.NET×é¼þDLLÎļþÒª°²×°ÔÚÄ¿±ê»úÆ÷ÉÏ¡£ÒòΪ.NET×é¼þ²»ÐèÒªÔÚWindows RegistryÖÐ×¢²á£¬ËùÒÔ×î¼òµ¥µÄ·½·¨Êǽ«.NET×é¼þDLLÎļþ¿½±´µ½ÔËÐгÌÐòĿ¼Ï¡£Èç¹û´Ë.NET×é¼þ±»¶à¸ö.NET³ÌÐò¹²Ïí£¬¿ÉÒÔ½«Æä°²×°ÔÚ.NET¹«ÓÃ×é¼þÇøÖУ¬´Ó¶ø¿É±»ÈκÎÒ»¸ö.NET×é¼þʹÓá£Ö»Óе±Ò»¸ö.NET×é¼þ²ÎÓëÁËÊÂÎñ´¦Àíʱ£¬²ÅÐèÒª½«Ëü×¢²áΪһ¸öCOM+×é¼þ¡£ÒòΪ.NETÈÔÈ»Óô«Í³µÄCOM+»úÖÆÀ´´¦ÀíÊÂÎñµÄÌá½»¡¢»Ø¹öµÈ¡£
-
Web.configÏê½â
2009-03-25 10:05:06
ת×Ôhttp://www.doorle.cn/blog/article.asp?id=923
Ò»¡¢ÈÏʶWeb.configÎļþ
Web.config ÎļþÊÇÒ»¸öXMLÎı¾Îļþ£¬ËüÓÃÀ´´¢´æ ASP.NET Web Ó¦ÓóÌÐòµÄÅäÖÃÐÅÏ¢£¨Èç×î³£ÓõÄÉèÖÃASP.NET Web Ó¦ÓóÌÐòµÄÉí·ÝÑéÖ¤·½Ê½£©£¬Ëü¿ÉÒÔ³öÏÖÔÚÓ¦ÓóÌÐòµÄÿһ¸öĿ¼ÖС£µ±Äãͨ¹ý.NETн¨Ò»¸öWebÓ¦ÓóÌÐòºó£¬Ä¬ÈÏÇé¿öÏ»áÔÚ¸ùĿ¼×Ô¶¯´´½¨Ò»¸öĬÈϵÄWeb.configÎļþ£¬°üÀ¨Ä¬ÈϵÄÅäÖÃÉèÖã¬ËùÓеÄ×ÓĿ¼¶¼¼Ì³ÐËüµÄÅäÖÃÉèÖá£Èç¹ûÄãÏëÐÞ¸Ä×ÓĿ¼µÄÅäÖÃÉèÖã¬Äã¿ÉÒÔÔÚ¸Ã×ÓĿ¼ÏÂн¨Ò»¸öWeb.configÎļþ¡£Ëü¿ÉÒÔÌṩ³ý´Ó¸¸Ä¿Â¼¼Ì³ÐµÄÅäÖÃÐÅÏ¢ÒÔÍâµÄÅäÖÃÐÅÏ¢£¬Ò²¿ÉÒÔÖØд»òÐ޸ĸ¸Ä¿Â¼Öж¨ÒåµÄÉèÖá£
(Ò»).Web.ConfigÊÇÒÔXMLÎļþ¹æ·¶´æ´¢,ÅäÖÃÎļþ·ÖΪÒÔϸñʽ
1.ÅäÖýڴ¦Àí³ÌÐòÉùÃ÷
Ìص㣺 λÓÚÅäÖÃÎļþµÄ¶¥²¿£¬°üº¬ÔÚ<configSections>±êÖ¾ÖС£
2.Ìض¨Ó¦ÓóÌÐòÅäÖÃ
Ìصã: λÓÚ<appSetting>ÖС£ ¿ÉÒÔ¶¨ÒåÓ¦ÓóÌÐòµÄÈ«¾Ö³£Á¿ÉèÖõÈÐÅÏ¢.
3.ÅäÖýÚÉèÖÃ
Ìصã: λÓÚ<system.Web>½ÚÖУ¬¿ØÖÆAsp.netÔËÐÐʱµÄÐÐΪ.
4.ÅäÖýÚ×é
Ìصã: ÓÃ<sectionGroup>±ê¼Ç£¬¿ÉÒÔ×Ô¶¨Òå·Ö×飬¿ÉÒԷŵ½<configSections>ÄÚ²¿»òÆäËü<sectionGroup>±ê¼ÇµÄÄÚ²¿.
(¶þ).ÅäÖýڵÄÿһ½Ú
1.<configuration>½Ú
¸ùÔªËØ£¬ÆäËü½Ú¶¼ÊÇÔÚËüµÄÄÚ²¿.
2.<appSetting>½Ú
´Ë½ÚÓÃÓÚ¶¨ÒåÓ¦ÓóÌÐòÉèÖÃÏî¡£¶ÔһЩ²»È·¶¨ÉèÖ㬻¹¿ÉÒÔÈÃÓû§¸ù¾Ý×Ô¼ºÊµ¼ÊÇé¿ö×Ô¼ºÉèÖÃ
Ó÷¨:
I.
<appSettings>
<add key="Conntction" value="server=192.168.85.66;userid=sa;password=;database=Info;"/>
<appSettings>
¶¨ÒåÁËÒ»¸öÁ¬½Ó×Ö·û´®³£Á¿£¬²¢ÇÒÔÚʵ¼ÊÓ¦ÓÃʱ¿ÉÒÔÐÞ¸ÄÁ¬½Ó×Ö·û´®£¬²»ÓÃÐ޸ijÌʽ´úÂë.
II.<appSettings>
<add key="ErrPage" value="Error.aspx"/>
<appSettings>
¶¨ÒåÁËÒ»¸ö´íÎóÖض¨ÏòÒ³Ãæ.
3.<compilation>½Ú
¸ñʽ:
<compilation
defaultLanguage="c#"
debug="true"
/>
I.default language: ¶¨Òåºǫ́´úÂëÓïÑÔ,¿ÉÒÔÑ¡ÔñC#ºÍVB.netÁ½ÖÖÓïÑÔ.
IIdebug : Ϊtrueʱ£¬Æô¶¯aspxµ÷ÊÔ£» Ϊfalse²»Æô¶¯aspxµ÷ÊÔ£¬Òò¶ø¿ÉÒÔÌá¸ßÓ¦ÓóÌÐòÔËÐÐ
ʱµÄÐÔÄÜ¡£ Ò»°ã³ÌÐòÔ±ÔÚ¿ª·¢Ê±ÉèÖÃΪtrue,½»¸ø¿Í»§Ê±ÉèÖÃΪfalse.
4.<customErrors>½Ú
¸ñʽ:
<customErrors
mode="RemoteOnly"
defaultRedirect="error.aspx"
<error statusCode="440" redirect="err440page.aspx"/>
<error statusCode="500" redirect="err500Page.aspx"/>
/>
I.mode : ¾ßÓÐOn,Off,RemoteOnly 3ÖÖ״̬¡£On±íʾʼÖÕÏÔʾ×Ô¶¨ÒåµÄÐÅÏ¢; Off±íʾʼÖÕÏÔʾÏêϸµÄasp.net´íÎóÐÅÏ¢; RemoteOnly±íʾֻ¶Ô²»ÔÚ±¾µØWeb·þÎñÆ÷ÉÏÔËÐеÄÓû§ÏÔʾ×Ô¶¨ÒåÐÅÏ¢.
II.defaultRedirect: ÓÃÓÚ³öÏÖ´íÎóʱÖض¨ÏòµÄURLµØÖ·. ÊÇ¿ÉÑ¡µÄ
III.statusCode: Ö¸Ã÷´íÎó״̬Â룬±íÃ÷Ò»ÖÖÌض¨µÄ³ö´í״̬.
IV. redirect:´íÎóÖض¨ÏòµÄURL.
5.<globalization>½Ú
¸ñʽ:
<globalization
requestEncoding="utf-8"
responseEncoding="utf-8"
fileEncoding="utf-8"
/>
I.requestEncoding: ËüÓÃÀ´¼ì²éÿһ¸ö·¢À´ÇëÇóµÄ±àÂë.
II.responseEncoding: ÓÃÓÚ¼ì²é·¢»ØµÄÏìÓ¦ÄÚÈݱàÂë.
III.fileEncoding: ÓÃÓÚ¼ì²éaspx,asaxµÈÎļþ½âÎöµÄĬÈϱàÂë.
6.<sessionState>½Ú
¸ñʽ:
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="20"
/>
I.mode: ·ÖΪoff,Inproc,StateServer,SqlServer¼¸ÖÖ״̬
ÕâÀïÓÐÏêϸ½éÉÜ´ËÊôÐÔ:
II. stateConnectionString :Ö¸¶¨Asp.netÓ¦ÓóÌÐò´æ´¢Ô¶³Ì»á»°×´Ì¬µÄ·þÎñÆ÷Ãû£¬Ä¬ÈÏΪ±¾»ú
III.sqlConnectionString: µ±ÓûỰ״̬Êý¾Ý¿âʱ£¬ÔÚÕâÀïÉèÖÃÁ¬½Ó×Ö·û´®
IV. Cookieless: ÉèÖÃΪtrueʱ£¬±íʾ²»Ê¹ÓÃcookie»á»°×´Ì¬À´±êʶ¿Í»§£» ·ñÔò£¬Ïà·´.
V. TimeOut: ÓÃÀ´¶¨Òå»á»°×´Ì¬´æ´¢µÄʱ¼ä£¬³¬¹ýÆÚÏÞ£¬½«×Ô¶¯ÖÕÖ¹»á»°.
7.<authentication>½Ú
¸ñʽ:
<authentication mode="Forms">
<forms name=".ASPXUSERDEMO" loginUrl="Login.aspx" protection="All" timeout="30"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
I.Windows: ʹÓÃIISÑéÖ¤·½Ê½
II.Forms: ʹÓûùÓÚ´°ÌåµÄÑéÖ¤·½Ê½
III.Passport: ²ÉÓÃPassport cookieÑé֤ģʽ
IV.None: ²»²ÉÓÃÈκÎÑéÖ¤·½Ê½
ÀïÃæÄÚǶForms½ÚµãµÄÊôÐÔºÒå:
I.Name: Ö¸¶¨Íê³ÉÉí·ÝÑéÖ¤µÄHttp cookieµÄÃû³Æ.
II.LoginUrl: Èç¹ûδͨ¹ýÑéÖ¤»ò³¬Ê±ºóÖض¨ÏòµÄÒ³ÃæURL£¬Ò»°ãΪµÇ¼ҳÃ棬ÈÃÓû§ÖØеǼ
III.Protection: Ö¸¶¨ cookieÊý¾ÝµÄ±£»¤·½Ê½.
¿ÉÉèÖÃΪ: All None Encryption ValidationËÄÖÖ±£»¤·½Ê½
a. All±íʾ¼ÓÃÜÊý¾Ý£¬²¢½øÐÐÓÐЧÐÔÑéÖ¤Á½ÖÖ·½Ê½
b. None±íʾ²»±£»¤Cookie.
c. Encryption±íʾ¶ÔCookieÄÚÈݽøÐмÓÃÜ
d. validation±íʾ¶ÔCookieÄÚÈݽøÐÐÓÐЧÐÔÑéÖ¤
IV. TimeOut: Ö¸¶¨CookieµÄʧЧʱ¼ä. ³¬Ê±ºóÒªÖØеǼ.
ÔÚÔËÐÐʱ¶ÔWeb.configÎļþµÄÐ޸IJ»ÐèÒªÖØÆô·þÎñ¾Í¿ÉÒÔÉúЧ£¨×¢£º<processModel> ½ÚÀýÍ⣩¡£µ±È»Web.configÎļþÊÇ¿ÉÒÔÀ©Õ¹µÄ¡£Äã¿ÉÒÔ×Ô¶¨ÒåÐÂÅäÖòÎÊý²¢±àдÅäÖýڴ¦Àí³ÌÐòÒÔ¶ÔËüÃǽøÐд¦Àí¡£
web.configÅäÖÃÎļþ£¨Ä¬ÈϵÄÅäÖÃÉèÖã©ÒÔÏÂËùÓеĴúÂ붼Ӧ¸ÃλÓÚ
<configuration>
<system.web>
ºÍ
</system.web>
</configuration>
Ö®¼ä£¬³öÓÚѧϰµÄÄ¿µÄÏÂÃæµÄʾÀý¶¼Ê¡ÂÔÁËÕâ¶ÎXML±ê¼Ç¡£
1¡¢<authentication> ½Ú
×÷ÓãºÅäÖà ASP.NET Éí·ÝÑéÖ¤Ö§³Ö£¨ÎªWindows¡¢Forms¡¢PassPort¡¢NoneËÄÖÖ£©¡£¸ÃÔªËØÖ»ÄÜÔÚ¼ÆËã»ú¡¢Õ¾µã»òÓ¦ÓóÌÐò¼¶±ðÉùÃ÷¡£< authentication> ÔªËرØÐèÓë<authorization> ½ÚÅäºÏʹÓá£
ʾÀý£º
ÒÔÏÂʾÀýΪ»ùÓÚ´°Ì壨Forms£©µÄÉí·ÝÑéÖ¤ÅäÖÃÕ¾µã£¬µ±Ã»ÓеǽµÄÓû§·ÃÎÊÐèÒªÉí·ÝÑéÖ¤µÄÍøÒ³£¬ÍøÒ³×Ô¶¯Ìøתµ½µÇ½ÍøÒ³¡£
<authentication mode="Forms" >
<forms loginUrl="logon.aspx" name=".FormsAuthCookie"/>
</authentication>
ÆäÖÐÔªËØloginUrl±íʾµÇ½ÍøÒ³µÄÃû³Æ£¬name±íʾCookieÃû³Æ¡£
2¡¢<authorization> ½Ú
×÷Ó㺿ØÖÆ¶Ô URL ×ÊÔ´µÄ¿Í»§¶Ë·ÃÎÊ£¨ÈçÔÊÐíÄäÃûÓû§·ÃÎÊ£©¡£´ËÔªËØ¿ÉÒÔÔÚÈκμ¶±ð£¨¼ÆËã»ú¡¢Õ¾µã¡¢Ó¦ÓóÌÐò¡¢×ÓĿ¼»òÒ³£©ÉÏÉùÃ÷¡£±ØÐèÓë<authentication> ½ÚÅäºÏʹÓá£
ʾÀý£ºÒÔÏÂʾÀý½ûÖ¹ÄäÃûÓû§µÄ·ÃÎÊ
<authorization>
<deny users="?"/>
</authorization>
×¢£ºÄã¿ÉÒÔʹÓÃuser.identity.nameÀ´»ñÈ¡ÒѾ¹ýÑéÖ¤µÄµ±Ç°µÄÓû§Ãû£»¿ÉÒÔʹÓÃweb.Security.FormsAuthentication.RedirectFromLoginPage·½·¨½«ÒÑÑéÖ¤µÄÓû§Öض¨Ïòµ½Óû§¸Õ²ÅÇëÇóµÄÒ³Ãæ.¾ßÌåµÄ
3¡¢<compilation>½Ú
×÷ÓãºÅäÖà ASP.NET ʹÓõÄËùÓбàÒëÉèÖá£Ä¬ÈϵÄdebugÊôÐÔΪ¡°True¡±.ÔÚ³ÌÐò±àÒëÍê³É½»¸¶Ê¹ÓÃÖ®ºóÓ¦½«ÆäÉèΪFalse£¨Web.configÎļþÖÐÓÐÏêϸ˵Ã÷£¬´Ë´¦Ê¡ÂÔʾÀý£©
4¡¢<customErrors>
×÷ÓãºÎª ASP.NET Ó¦ÓóÌÐòÌṩÓйØ×Ô¶¨Òå´íÎóÐÅÏ¢µÄÐÅÏ¢¡£Ëü²»ÊÊÓÃÓÚ XML Web services Öз¢ÉúµÄ´íÎó¡£
ʾÀý£ºµ±·¢Éú´íÎóʱ£¬½«ÍøÒ³Ìøתµ½×Ô¶¨ÒåµÄ´íÎóÒ³Ãæ¡£
<customErrors defaultRedirect="ErrorPage.aspx" mode="RemoteOnly">
</customErrors>
ÆäÖÐÔªËØdefaultRedirect±íʾ×Ô¶¨ÒåµÄ´íÎóÍøÒ³µÄÃû³Æ¡£modeÔªËرíʾ£º¶Ô²»ÔÚ±¾µØ Web ·þÎñÆ÷ÉÏÔËÐеÄÓû§ÏÔʾ×Ô¶¨Òå(ÓѺõÄ)ÐÅÏ¢¡£
5¡¢<httpRuntime>½Ú
×÷ÓãºÅäÖà ASP.NET HTTP ÔËÐпâÉèÖ᣸ýڿÉÒÔÔÚ¼ÆËã»ú¡¢Õ¾µã¡¢Ó¦ÓóÌÐòºÍ×ÓĿ¼¼¶±ðÉùÃ÷¡£
ʾÀý£º¿ØÖÆÓû§ÉÏ´«Îļþ×î´óΪ4M£¬×ʱ¼äΪ60Ã룬×î¶àÇëÇóÊýΪ100
<httpRuntime maxRequestLength="4096" executionTimeout="60" appRequestQueueLimit="100"/>
6¡¢ <pages>
×÷Ó㺱êʶÌض¨ÓÚÒ³µÄÅäÖÃÉèÖã¨ÈçÊÇ·ñÆôÓûỰ״̬¡¢ÊÓͼ״̬£¬ÊÇ·ñ¼ì²âÓû§µÄÊäÈëµÈ£©¡£<pages>¿ÉÒÔÔÚ¼ÆËã»ú¡¢Õ¾µã¡¢Ó¦ÓóÌÐòºÍ×ÓĿ¼¼¶±ðÉùÃ÷¡£
ʾÀý£º²»¼ì²âÓû§ÔÚä¯ÀÀÆ÷ÊäÈëµÄÄÚÈÝÖÐÊÇ·ñ´æÔÚDZÔÚµÄΣÏÕÊý¾Ý£¨×¢£º¸ÃÏîĬÈÏÊǼì²â£¬Èç¹ûÄãʹÓÃÁ˲»¼ì²â£¬Ò»Òª¶ÔÓû§µÄÊäÈë½øÐбàÂë»òÑéÖ¤)£¬ÔÚ´Ó¿Í»§¶Ë»Ø·¢Ò³Ê±½«¼ì²é¼ÓÃܵÄÊÓͼ״̬£¬ÒÔÑéÖ¤ÊÓͼ״̬ÊÇ·ñÒÑÔÚ¿Í»§¶Ë±»´Û¸Ä¡£(×¢£º¸ÃÏîĬÈÏÊDz»ÑéÖ¤£©
<pages buffer="true" enableViewStateMac="true" validateRequest="false"/>
7¡¢<sessionState>
×÷ÓãºÎªµ±Ç°Ó¦ÓóÌÐòÅäÖûỰ״̬ÉèÖã¨ÈçÉèÖÃÊÇ·ñÆôÓûỰ״̬£¬»á»°×´Ì¬±£´æλÖã©¡£
ʾÀý£º
<sessionState mode="InProc" cookieless="true" timeout="20"/>
</sessionState>
×¢£º
mode="InProc"±íʾ£ºÔÚ±¾µØ´¢´æ»á»°×´Ì¬£¨ÄãÒ²¿ÉÒÔÑ¡Ôñ´¢´æÔÚÔ¶³Ì·þÎñÆ÷»òSAL·þÎñÆ÷Öлò²»ÆôÓûỰ״̬£©
cookieless="true"±íʾ£ºÈç¹ûÓû§ä¯ÀÀÆ÷²»Ö§³ÖCookieʱÆôÓûỰ״̬(ĬÈÏΪFalse£©
timeout="20"±íʾ£º»á»°¿ÉÒÔ´¦ÓÚ¿ÕÏÐ״̬µÄ·ÖÖÓÊý
8¡¢<trace>
×÷ÓãºÅäÖà ASP.NET ¸ú×Ù·þÎñ£¬Ö÷ÒªÓÃÀ´³ÌÐò²âÊÔÅжÏÄÄÀï³ö´í¡£
ʾÀý£ºÒÔÏÂΪWeb.configÖеÄĬÈÏÅäÖãº
<trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />
×¢£º
enabled="false"±íʾ²»ÆôÓøú×Ù£»
requestLimit="10"±íʾָ¶¨ÔÚ·þÎñÆ÷ÉÏ´æ´¢µÄ¸ú×ÙÇëÇóµÄÊýÄ¿
pageOutput="false"±íʾֻÄÜͨ¹ý¸ú×ÙʵÓù¤¾ß·ÃÎʸú×ÙÊä³ö£»
traceMode="SortByTime"±íʾÒÔ´¦Àí¸ú×ÙµÄ˳ÐòÀ´ÏÔʾ¸ú×ÙÐÅÏ¢
localOnly="true" ±íʾ¸ú×ٲ鿴Æ÷ (trace.axd) Ö»ÓÃÓÚËÞÖ÷ Web ·þÎñÆ÷
×Ô¶¨ÒåWeb.configÎļþÅäÖÃ
×Ô¶¨ÒåWeb.configÎļþÅäÖýڹý³Ì·ÖΪÁ½²½¡£
1.ÔÚÔÚÅäÖÃÎļþ¶¥²¿ <configSections> ºÍ </configSections>±ê¼ÇÖ®¼äÉùÃ÷ÅäÖýڵÄÃû³ÆºÍ´¦Àí¸Ã½ÚÖÐÅäÖÃÊý¾ÝµÄ .NET Framework ÀàµÄÃû³Æ¡£
2.ÊÇÔÚ <configSections> ÇøÓòÖ®ºóΪÉùÃ÷µÄ½Ú×öʵ¼ÊµÄÅäÖÃÉèÖá£
ʾÀý£º´´½¨Ò»¸ö½Ú´æ´¢Êý¾Ý¿âÁ¬½Ó×Ö·û´®
<configuration>
¡¡ <configSections>
¡¡ <section name="appSettings" type="System.Configuration.NameValueFileSectionHandler, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</configSections>
¡¡ <appSettings>
¡¡¡¡ <add key="scon" value="server=a;database=northwind;uid=sa;pwd=123"/>
¡¡ </appSettings>
¡¡ <system.web>
¡¡¡¡ ......
¡¡ </system.web>
</configuration>
·ÃÎÊWeb.configÎļþ Äã¿ÉÒÔͨ¹ýʹÓÃConfigurationSettings.AppSettings ¾²Ì¬×Ö·û´®¼¯ºÏÀ´·ÃÎÊ Web.config ÎļþʾÀý£º»ñÈ¡ÉÏÃæÀý×ÓÖн¨Á¢µÄÁ¬½Ó×Ö·û´®¡£ÀýÈ磺
protected static string Isdebug = ConfigurationSettings.AppSettings["debug"]
¶þ¡¢web.configÖеÄsessionÅäÖÃÏê½â
´ò¿ªÄ³¸öÓ¦ÓóÌÐòµÄÅäÖÃÎļþWeb.configºó£¬ÎÒÃǻᷢÏÖÒÔÏÂÕâ¶Î£º
< sessionState
¡¡¡¡mode="InProc"
¡¡¡¡stateConnectionString="tcpip=127.0.0.1:42424"
¡¡¡¡sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
¡¡¡¡cookieless="false"
¡¡¡¡timeout="20"
/>
¡¡¡¡ÕâÒ»¶Î¾ÍÊÇÅäÖÃÓ¦ÓóÌÐòÊÇÈçºÎ´æ´¢SessionÐÅÏ¢µÄÁË¡£ÎÒÃÇÒÔϵĸ÷ÖÖ²Ù×÷Ö÷ÒªÊÇÕë¶ÔÕâÒ»¶ÎÅäÖÃÕ¹¿ª¡£ÈÃÎÒÃÇÏÈ¿´¿´ÕâÒ»¶ÎÅäÖÃÖÐËù°üº¬µÄÄÚÈݵÄÒâ˼¡£sessionState½ÚµãµÄÓï·¨ÊÇÕâÑùµÄ£º
< sessionState mode="Off|InProc|StateServer|SQLServer"
cookieless="true|false"
timeout="number of minutes"
stateConnectionString="tcpip=server:port"
sqlConnectionString="sql connection string"
stateNetworkTimeout="number of seconds"
/>
±ØÐëÓеÄÊôÐÔÊÇ ÊôÐÔ Ñ¡Ïî ÃèÊö
mode ÉèÖý«SessionÐÅÏ¢´æ´¢µ½ÄÄÀï
Ø Off ÉèÖÃΪ²»Ê¹ÓÃSession¹¦ÄÜ£¬
Ø InProc ÉèÖÃΪ½«Session´æ´¢ÔÚ½ø³ÌÄÚ£¬¾ÍÊÇASPÖеĴ洢·½Ê½£¬ÕâÊÇĬÈÏÖµ£¬
Ø StateServer ÉèÖÃΪ½«Session´æ´¢ÔÚ¶ÀÁ¢µÄ״̬·þÎñÖУ¬
Ø SQLServer ÉèÖý«Session´æ´¢ÔÚSQL ServerÖС£
¿ÉÑ¡µÄÊôÐÔÊÇ£º ÊôÐÔ Ñ¡Ïî ÃèÊö
Ø cookieless ÉèÖÿͻ§¶ËµÄSessionÐÅÏ¢´æ´¢µ½ÄÄÀ
Ø ture ʹÓÃCookielessģʽ£¬
Ø false ʹÓÃCookieģʽ£¬ÕâÊÇĬÈÏÖµ£¬
Ø timeout ÉèÖþ¹ý¶àÉÙ·ÖÖÓºó·þÎñÆ÷×Ô¶¯·ÅÆúSessionÐÅÏ¢£¬Ä¬ÈÏΪ20·ÖÖÓ¡£
stateConnectionString ÉèÖý«SessionÐÅÏ¢´æ´¢ÔÚ״̬·þÎñÖÐʱʹÓõķþÎñÆ÷Ãû³ÆºÍ¶Ë¿ÚºÅ£¬ÀýÈ磺"tcpip=127.0.0.1:42424¡±¡£µ±modeµÄÖµÊÇStateServerÊÇ£¬Õâ¸öÊôÐÔÊDZØÐèµÄ¡£
sqlConnectionString ÉèÖÃÓëSQL ServerÁ¬½ÓʱµÄÁ¬½Ó×Ö·û´®¡£ÀýÈç"data source= localhost;Integrated Security=SSPI;Initial Catalog=northwind"¡£µ±modeµÄÖµÊÇ SQLServerʱ£¬Õâ¸öÊôÐÔÊDZØÐèµÄ¡£
stateNetworkTimeout ÉèÖõ±Ê¹ÓÃStateServerģʽ´æ´¢Session״̬ʱ£¬¾¹ý¶àÉÙÃë¿ÕÏк󣬶ϿªWeb·þÎñÆ÷Óë´æ´¢×´Ì¬ÐÅÏ¢µÄ·þÎñÆ÷µÄTCP/IPÁ¬½ÓµÄ¡£Ä¬ÈÏÖµÊÇ10ÃëÖÓ¡£
ASP.NETÖпͻ§¶ËSession״̬µÄ´æ´¢
¡¡¡¡ÔÚÎÒÃÇÉÏÃæµÄSessionÄ£Ðͼò½éÖУ¬´ó¼Ò¿ÉÒÔ·¢ÏÖSession״̬Ӧ¸Ã´æ´¢ÔÚÁ½¸öµØ·½£¬·Ö±ðÊÇ¿Í»§¶ËºÍ·þÎñÆ÷¶Ë¡£¿Í»§¶ËÖ»¸ºÔð±£´æÏàÓ¦ÍøÕ¾µÄSessionID£¬¶øÆäËûµÄSessionÐÅÏ¢Ôò±£´æÔÚ·þÎñÆ÷¶Ë¡£ÔÚASPÖУ¬¿Í»§¶ËµÄSessionIDʵ¼ÊÊÇÒÔCookieµÄÐÎʽ´æ´¢µÄ¡£Èç¹ûÓû§ÔÚä¯ÀÀÆ÷µÄÉèÖÃÖÐÑ¡ÔñÁ˽ûÓÃCookie£¬ÄÇÄ©ËûÒ²¾ÍÎÞ·¨ÏíÊÜSessionµÄ±ãÀûÖ®´¦ÁË£¬ÉõÖÁÔì³É²»ÄÜ·ÃÎÊijЩÍøÕ¾¡£ÎªÁ˽â¾öÒÔÉÏÎÊÌ⣬ÔÚ ASP.NETÖпͻ§¶ËµÄSessionÐÅÏ¢´æ´¢·½Ê½·ÖΪ£ºCookieºÍCookielessÁ½ÖÖ¡£
¡¡¡¡ASP.NETÖУ¬Ä¬ÈÏ״̬Ï£¬ÔÚ¿Í»§¶Ë»¹ÊÇʹÓÃCookie´æ´¢SessionÐÅÏ¢µÄ¡£Èç¹ûÎÒÃÇÏëÔÚ¿Í»§¶ËʹÓÃCookielessµÄ·½Ê½´æ´¢SessionÐÅÏ¢µÄ·½·¨ÈçÏ£º
¡¡¡¡ÕÒµ½µ±Ç°WebÓ¦ÓóÌÐòµÄ¸ùĿ¼£¬´ò¿ªWeb.ConfigÎļþ£¬ÕÒµ½Èç϶ÎÂ䣺
< sessionState
¡¡¡¡mode="InProc"
¡¡¡¡stateConnectionString="tcpip=127.0.0.1:42424"
¡¡¡¡sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
¡¡¡¡cookieless="false"
¡¡¡¡timeout="20"
/>
¡¡¡¡Õâ¶Î»°ÖеÄcookieless="false"¸ÄΪ£ºcookieless="true"£¬ÕâÑù£¬¿Í»§¶ËµÄSessionÐÅÏ¢¾Í²»ÔÙʹÓà Cookie´æ´¢ÁË£¬¶øÊǽ«Æäͨ¹ýURL´æ´¢¡£¹Ø±Õµ±Ç°µÄIE£¬´ò¿ªÒ»¸öÐÂIE£¬ÖØзÃÎʸղŵÄWebÓ¦ÓóÌÐò£¬¾Í»á¿´µ½ÀàËÆÏÂÃæµÄÑù×Ó£º
ÆäÖУ¬http://localhost/MyTestApplication/(ulqsek45heu3ic2a5zgdl245) /default.aspxÖкÚÌå±ê³öµÄ¾ÍÊÇ¿Í»§¶ËµÄSession ID¡£×¢Ò⣬Õâ¶ÎÐÅÏ¢ÊÇÓÉIIS×Ô¶¯¼ÓÉϵģ¬²»»áÓ°ÏìÒÔÇ°Õý³£µÄÁ¬½Ó¡£
ASP.NETÖзþÎñÆ÷¶ËSession״̬µÄ´æ´¢ ×¼±¸¹¤×÷£º
¡¡¡¡ÎªÁËÄúÄܸüºÃµÄÌåÑ鵽ʵÑéÏÖÏó£¬Äú¿ÉÒÔ½¨Á¢Ò»¸ö½Ð×öSessionState.aspxµÄÒ³Ã棬Ȼºó°ÑÒÔÏÂÕâЩ´úÂëÌí¼Óµ½< body>< /body>ÖС£
< scriptrunat="server">
Sub Session_Add(sender As Object, e As EventArgs)
¡¡ Session("MySession") = text1.Value
¡¡ span1.InnerHtml = "Session data updated! < P>Your session contains: < font color=red>" & Session("MySession"). ToString() & "< /font>"
End Sub
Sub CheckSession(sender As Object, eAs EventArgs)
¡¡ If (Session("MySession")Is Nothing) Then
¡¡¡¡¡¡ span1.InnerHtml = "NOTHING, SESSION DATA LOST!"
¡¡ Else
¡¡¡¡¡¡ span1.InnerHtml = "Your session contains: < font color= red>" & Session("MySession").ToString() & "< /font>"
End If
End Sub
< /script>
< formrunat="server"id="Form2">
¡¡ < inputid="text1"type="text"runat="server"name="text1">
¡¡ < inputtype="submit"runat="server"OnServerClick="Session_Add"
¡¡¡¡¡¡¡¡¡¡ value="Add to Session State " id="Submit1"name="Submit1">
¡¡ < inputtype="submit"runat="server"OnServerClick="CheckSession"
¡¡¡¡¡¡¡¡¡¡ value=" View Session State " id="Submit2"name="Submit2">
< /form>
< hrsize="1">
< fontsize="6">< spanid="span1"runat="server" />< /font>
¡¡¡¡Õâ¸öSessionState.aspxµÄÒ³Ãæ¿ÉÒÔÓÃÀ´²âÊÔÔÚµ±Ç°µÄ·þÎñÆ÷ÉÏÊÇ·ñ¶ªÊ§ÁËSessionÐÅÏ¢¡£
½«·þÎñÆ÷SessionÐÅÏ¢´æ´¢ÔÚ½ø³ÌÖÐ
¡¡¡¡ÈÃÎÒÃÇÀ´»Øµ½Web.configÎļþµÄ¸Õ²ÅÄǶζÎÂäÖУº
< sessionState
¡¡¡¡mode="InProc"
¡¡¡¡stateConnectionString="tcpip=127.0.0.1:42424"
¡¡¡¡sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
¡¡¡¡cookieless="false"
¡¡¡¡timeout="20"
/>
¡¡¡¡µ±modeµÄÖµÊÇInProcʱ£¬ËµÃ÷·þÎñÆ÷ÕýÔÚʹÓÃÕâÖÖģʽ¡£
¡¡¡¡ÕâÖÖ·½Ê½ºÍÒÔÇ°ASPÖеÄģʽһÑù£¬¾ÍÊÇ·þÎñÆ÷½«SessionÐÅÏ¢´æ´¢ÔÚIIS½ø³ÌÖС£µ±IIS¹Ø±Õ¡¢ÖØÆðºó£¬ÕâЩÐÅÏ¢¶¼»á¶ªÊ§¡£µ«ÊÇÕâÖÖģʽҲÓÐ×Ô¼º×î´óºÃ´¦£¬¾ÍÊÇÐÔÄÜ×î¸ß¡£Ó¦ÎªËùÓеÄSessionÐÅÏ¢¶¼´æ´¢ÔÚÁËIISµÄ½ø³ÌÖУ¬ËùÒÔIISÄܹ»ºÜ¿ìµÄ·ÃÎʵ½ÕâЩÐÅÏ¢£¬ÕâÖÖģʽµÄÐÔÄܱȽø³ÌÍâ´æ´¢SessionÐÅÏ¢»òÊÇÔÚSQL ServerÖд洢SessionÐÅÏ¢¶¼Òª¿ìÉϺܶࡣÕâÖÖģʽҲÊÇASP.NETµÄĬÈÏ·½Ê½¡£
¡¡¡¡ºÃÁË£¬ÏÖÔÚÈÃÎÒÃÇ×ö¸öÊÔÑé¡£´ò¿ª¸Õ²ÅµÄSessionState.aspxÒ³Ã棬Ëæ±ãÊäÈëһЩ×Ö·û£¬Ê¹Æä´æ´¢ÔÚSessionÖС£È»ºó£¬ÈÃÎÒÃÇÈÃIISÖØÆð¡£×¢Ò⣬²¢²»ÊÇʹµ±Ç°µÄÕ¾µãÍ£Ö¹ÔÙ¿ªÊ¼£¬¶øÊÇÔÚIISÖб¾»úµÄ»úÆ÷ÃûµÄ½ÚµãÉϵã»÷Êó±êÓÒ¼ü£¬Ñ¡ÔñÖØÐÂÆô¶¯IIS¡£(Ïëµ±³õʹÓÃNT4ʱ£¬ÖØÐÂÆô¶¯IIS±ØÐëÒªÖØÐÂÆô¶¯¼ÆËã»ú²ÅÐУ¬Î¢ÈíÕæÊÇ@#$%^&)·µ»Øµ½SessionState.aspxÒ³ÃæÖУ¬¼ì²é¸Õ²ÅµÄSessionÐÅÏ¢£¬·¢ÏÖÐÅÏ¢ÒѾ¶ªÊ§ÁË¡£
½«·þÎñÆ÷SessionÐÅÏ¢´æ´¢ÔÚ½ø³ÌÍâ
¡¡¡¡Ê×ÏÈ£¬ÈÃÎÒÃÇÀ´´ò¿ª¹ÜÀí¹¤¾ß->·þÎñ£¬ÕÒµ½ÃûΪ£ºASP.NET State ServiceµÄ·þÎñ£¬Æô¶¯Ëü¡£Êµ¼ÊÉÏ£¬Õâ¸ö·þÎñ¾ÍÊÇÆô¶¯Ò»¸öÒª±£´æSessionÐÅÏ¢µÄ½ø³Ì¡£Æô¶¯Õâ¸ö·þÎñºó£¬Äã¿ÉÒÔ´ÓWindowsÈÎÎñ¹ÜÀíÆ÷->½ø³ÌÖп´µ½Ò»¸öÃûΪ aspnet_state.exeµÄ½ø³Ì£¬Õâ¸ö¾ÍÊÇÎÒÃDZ£´æSessionÐÅÏ¢µÄ½ø³Ì¡£
¡¡¡¡È»ºó£¬»Øµ½Web.configÎļþÖÐÉÏÊöµÄ¶ÎÂäÖУ¬½«modeµÄÖµ¸ÄΪStateServer¡£±£´æÎļþºóµÄÖØдò¿ªÒ»¸öIE£¬´ò¿ª SessionState.aspxÒ³Ã棬±£´æһЩÐÅÏ¢µ½SessionÖС£Õâʱ£¬ÈÃÎÒÃÇÖØÆðIIS£¬Ôٻص½SessionState.aspxÒ³ÃæÖв鿴¸Õ²ÅµÄSessionÐÅÏ¢£¬·¢ÏÖûÓжªÊ§¡£
¡¡¡¡Êµ¼ÊÉÏ£¬ÕâÖÖ½«SessionÐÅÏ¢´æ´¢ÔÚ½ø³ÌÍâµÄ·½Ê½²»¹âÖ¸¿ÉÒÔ½«ÐÅÏ¢´æ´¢ÔÚ±¾»úµÄ½ø³ÌÍ⣬»¹¿ÉÒÔ½«SessionÐÅÏ¢´æ´¢ÔÚÆäËûµÄ·þÎñÆ÷µÄ½ø³ÌÖС£Õâʱ£¬²»¹âÐèÒª½«modeµÄÖµ¸ÄΪStateServer£¬»¹ÐèÒªÔÚstateConnectionStringÖÐÅäÖÃÏàÓ¦µÄ²ÎÊý¡£ÀýÈçÄãµÄ¼ÆËãÄãÊÇ192.168.0.1£¬ÄãÏë°ÑSession´æ´¢ÔÚIPΪ192.168.0.2µÄ¼ÆËã»úµÄ½ø³ÌÖУ¬¾ÍÐèÒªÉèÖóÉÕâÑù£º stateConnectionString="tcpip=192.168.0.2:42424"¡£µ±È»£¬²»ÒªÍü¼ÇÔÚ192.168.0.2µÄ¼ÆËã»úÖÐ×°ÉÏ.NET Framework£¬²¢ÇÒÆô¶¯ASP.NET State Services·þÎñ¡£
½«·þÎñÆ÷SessionÐÅÏ¢´æ´¢ÔÚSQL ServerÖÐ
¡¡¡¡Ê×ÏÈ£¬»¹ÊÇÈÃÎÒÃÇÀ´×öһЩ׼±¸¹¤×÷¡£Æô¶¯SQL ServerºÍSQL Server´úÀí·þÎñ¡£ÔÚSQL ServerÖÐÖ´ÐÐÒ»¸ö½Ð×ö InstallSqlState.sqlµÄ½Å±¾Îļþ¡£Õâ¸ö½Å±¾Îļþ½«ÔÚSQL ServerÖд´½¨Ò»¸öÓÃÀ´×¨ÃÅ´æ´¢SessionÐÅÏ¢µÄÊý¾Ý¿â£¬¼°Ò»¸öά»¤SessionÐÅÏ¢Êý¾Ý¿âµÄSQL Server´úÀí×÷Òµ¡£ÎÒÃÇ¿ÉÒÔÔÚÒÔÏ·¾¶ÖÐÕÒµ½ÄǸöÎļþ£º
[system drive]\winnt\Microsoft.NET\Framework\[version]\
¡¡¡¡È»ºó´ò¿ª²éѯ·ÖÎöÆ÷£¬Á¬½Óµ½SQL Server·þÎñÆ÷£¬´ò¿ª¸Õ²ÅµÄÄǸöÎļþ²¢ÇÒÖ´ÐС£ÉÔµÈƬ¿Ì£¬Êý¾Ý¿â¼°×÷Òµ¾Í½¨Á¢ºÃÁË¡£Õâʱ£¬Äã¿ÉÒÔ´ò¿ªÆóÒµ¹ÜÀíÆ÷£¬¿´µ½ÐÂÔöÁËÒ»¸ö½ÐASPStateµÄÊý¾Ý¿â¡£µ«ÊÇÕâ¸öÊý¾Ý¿âÖÐÖ»ÊÇЩ´æ´¢¹ý³Ì£¬Ã»ÓÐÓû§±í¡£Êµ¼ÊÉÏSessionÐÅÏ¢ÊÇ´æ´¢ÔÚÁËtempdb Êý¾Ý¿âµÄASPStateTempSessions±íÖеģ¬ÁíÍâÒ»¸öASPStateTempApplications±í´æ´¢ÁËASPÖÐ Application¶ÔÏóÐÅÏ¢¡£ÕâÁ½¸ö±íÒ²ÊǸղŵÄÄǸö½Å±¾½¨Á¢µÄ¡£ÁíÍâ²é¿´¹ÜÀí->SQL Server´úÀí->×÷Òµ£¬·¢ÏÖÒ²¶àÁËÒ»¸ö½Ð×öASPState_Job_DeleteExpiredSessionsµÄ×÷Òµ£¬Õâ¸ö×÷ҵʵ¼ÊÉϾÍÊÇÿ·ÖÖÓÈ¥ASPStateTempSessions ±íÖÐɾ³ý¹ýÆÚµÄSessionÐÅÏ¢µÄ¡£
¡¡¡¡½Ó×Å£¬ÎÒÃÇ·µ»Øµ½Web.configÎļþ£¬ÐÞ¸ÄmodeµÄÖµ¸ÄΪSQLServer¡£×¢Ò⣬»¹ÒªÍ¬Ê±ÐÞ¸ÄsqlConnectionStringµÄÖµ£¬¸ñʽΪ£º
sqlConnectionString="data source=localhost; Integrated Security=SSPI;"
¡¡¡¡ÆäÖÐdata sourceÊÇÖ¸SQL Server·þÎñÆ÷µÄIPµØÖ·£¬Èç¹ûSQL ServerÓëIISÊÇһ̨»ú×Ó£¬Ð´127.0.0.1 ¾ÍÐÐÁË¡£Integrated Security=SSPIµÄÒâ˼ÊÇʹÓÃWindows¼¯³ÉÉí·ÝÑéÖ¤£¬ÕâÑù£¬·ÃÎÊÊý¾Ý¿â½«ÒÔASP.NETµÄÉí·Ý½øÐУ¬Í¨¹ýÈç´ËÅäÖã¬Äܹ»»ñµÃ±ÈʹÓÃuserid=sa;password=¿ÚÁîµÄSQL ServerÑéÖ¤·½Ê½¸üºÃµÄ°²È«ÐÔ¡£µ±È»£¬Èç¹ûSQL ServerÔËÐÐÓÚÁíһ̨¼ÆËã»úÉÏ£¬Äã¿ÉÄÜ»áÐèҪͨ¹ýActive DirectoryÓòµÄ·½Ê½À´Î¬»¤Á½±ßÑéÖ¤µÄÒ»ÖÂÐÔ¡£
¡¡¡¡Í¬Ñù£¬ÈÃÎÒÃÇ×ö¸öÊÔÑé¡£ÏòSessionState.aspxÖÐÌí¼ÓSessionÐÅÏ¢£¬Õâʱ·¢ÏÖSessionÐÅÏ¢ÒѾ´æÔÚ SQL ServerÖÐÁË£¬¼´Ê¹ÄãÖØÆð¼ÆËã»ú£¬¸Õ²ÅµÄSessionÐÅÏ¢Ò²²»»á¶ªÊ§¡£ÏÖÔÚ£¬ÄãÒѾÍêÈ«¿´¼ûÁËSessionÐÅÏ¢µ½µ×ÊÇʲôÑù×ÓµÄÁË£¬¶øÇÒÓÖÊÇ´æ´¢ÔÚSQL ServerÖеģ¬ÄܸÉʲô¾Í¿´ÄãµÄ·¢»ÓÁË¡£
×ܽá
¡¡¡¡Í¨¹ýÕâƪÎÄÕ£¬Äã¿ÉÒÔ¿´µ½ÔÚSessionµÄ¹ÜÀíºÍά»¤ÉÏ£¬ASP.NET±ÈASPÓÐÁ˺ܴóµÄ½ø²½£¬ÎÒÃÇ¿ÉÒÔ¸ü¼ÓËæÒâµÄÌôÑ¡Êʺϵķ½·¨ÁË¡£¶ÔÓÚÆóÒµ¼¶µÄÓ¦ÓÃÀ´Ëµ£¬ÕâÎÞÒɶÔÓÚ·þÎñÆ÷µÄͬ²½¡¢·þÎñÆ÷µÄÎȶ¨ÐÔ¡¢¿É¿¿ÐÔ¶¼ÊÇÓÐÀûµÄ¡£ÏàÐÅÔÚÇ¿´óµÄ΢ÈíÖ§³ÖÏ£¬ÐÂÒ»´úµÄµç×ÓÉÌÎñƽ̨½«»á´î½¨µÄ¸üºÃ£¡
ͬʱ£¬´ó¼ÒÒ²»á·¢ÏÖ£¬ÔÚÕâ¸öÕû¸ö¼¼ÊõÖаüÀ¨Á˲Ù×÷ϵͳ¡¢Web·þÎñ¼°Êý¾Ý¿â¶àÖÖ¼¼ÊõµÄÕûºÏ¡£ÎÒÏàÐÅ£¬Ò²ÐíWindowsûÓÐUnixÎȶ¨£¬ IISûÓÐApacheÎȶ¨£¬SQL ServerҲûÓÐOracleÇ¿´ó£¬µ«ÊÇ£¬Ë¿ÉÒÔ½«ËûÃÇÈç´ËÍêÃÀµÄÁª¶¯µ½Ò»ÆðÄØ£¿ËùÒÔ˵£¬ËäȻ΢Èíÿһ·½Ã涼²»ÊÇÌ«Ç¿£¬µ«ÊÇÈç¹û°Ñ΢ÈíµÄ¶«Î÷¶¼ÕûºÏµ½Ò»Æð£¬Ë¸Ò˵Ëû²»Ç¿´óÄØ£¿Î¢Èí¾ÍÊÇ΢Èí£¡
Èý¡¢Asp.net ¹ØÓÚformÈÏÖ¤µÄÒ»°ãÉèÖÃ
asp.net ¹ØÓÚformÈÏÖ¤µÄÒ»°ãÉèÖãº
1: ÔÚweb.configÖУ¬¼ÓÈëformÈÏÖ¤£»
<authentication mode="Forms">
<forms name="auth" loginUrl="index.aspx" timeout="30"></forms>
</authentication>
<authorization>
<deny users="?" />
</authorization>
2: Èç¹ûÓÐ×¢²áÒ³Ãæʱ»¹Ó¦¸ÃÔÊÐíÄäÃûÓû§µ÷ÓÃ×¢²áÒ³Ãæ½øÐÐ×¢²á;
ÒÔÏ´úÂëÓ¦¸ÃÔÚ<configuration><system.web>Ö®¼ä,¶ø²»Ó¦¸Ã°üº¬µ½<system.web>..</system.web>Ö®¼ä;
----------------±íʾÔÊÐí ÄäÃûÓû§¶Ô userReg.aspxÒ³Ãæ½øÐзÃÎÊ.
<location path="userReg.aspx">
<system.web>
<authorization>
<allow users="?" />
</authorization>
</system.web>
</location>
3 ÔڵǼ³É¹¦ºóÒª´´½¨Éí·ÝÑé֤Ʊ, ±íÃ÷ÒѾͨ¹ýÈÏÖ¤µÄºÏ·¨Óû§;
if(µÇ½³É¹¦)
System.Web.Security.FormsAuthentication.SetAuthCookie(Óû§Ãû³Æ, false);
¡¡¡¡ËÄ¡¢·ÃÎÊWeb.configÎļþ
¡¡¡¡Äã¿ÉÒÔͨ¹ýʹÓÃConfigurationSettings.AppSettings ¾²Ì¬×Ö·û´®¼¯ºÏÀ´·ÃÎÊ Web.config ÎļþʾÀý£º»ñÈ¡ÉÏÃæÀý×ÓÖн¨Á¢µÄÁ¬½Ó×Ö·û´®¡£ÀýÈ磺
protected static string Isdebug = ConfigurationSettings.AppSettings["scon"] -
.NetÖжÑÓëÕ»µÄÇø±ð
2009-03-19 21:45:42
.NetÖжÑÓëÕ»µÄÇø±ð
ÔÎijö´¦£ºhttp://www.c-sharpcorner.com/UploadFile/rmcochran/csharp_memory01122006130034PM/csharp_memory.aspx
¾¡¹ÜÔÚ.NET frameworkÏÂÎÒÃDz¢²»ÐèÒªµ£ÐÄÄÚ´æ¹ÜÀíºÍÀ¬»ø»ØÊÕ(Garbage Collection)£¬µ«ÊÇÎÒÃÇ»¹ÊÇÓ¦¸ÃÁ˽âËüÃÇ£¬ÒÔÓÅ»¯ÎÒÃǵÄÓ¦ÓóÌÐò¡£Í¬Ê±£¬»¹ÐèÒª¾ß±¸Ò»Ð©»ù´¡µÄÄÚ´æ¹ÜÀí¹¤×÷»úÖƵÄ֪ʶ£¬ÕâÑùÄܹ»ÓÐÖúÓÚ½âÊÍÎÒÃÇÈÕ³£³ÌÐò±àдÖеıäÁ¿µÄÐÐΪ¡£ÔÚ±¾ÎÄÖÐÎÒ½«½²½âÕ»ºÍ¶ÑµÄ»ù±¾ÖªÊ¶£¬±äÁ¿ÀàÐÍÒÔ¼°ÎªÊ²Ã´Ò»Ð©±äÁ¿Äܹ»°´ÕÕËüÃÇ×Ô¼ºµÄ·½Ê½¹¤×÷¡£
ÔÚ.NET framework»·¾³Ï£¬µ±ÎÒÃǵĴúÂëÖ´ÐÐʱ£¬ÄÚ´æÖÐÓÐÁ½¸öµØ·½ÓÃÀ´´æ´¢ÕâЩ´úÂë¡£¼ÙÈçÄã²»ÔøÁ˽⣬ÄǾÍÈÃÎÒÀ´¸øÄã½éÉÜÕ»(Stack)ºÍ¶Ñ(Heap)¡£Õ»ºÍ¶Ñ¶¼ÓÃÀ´°ïÖúÎÒÃÇÔËÐдúÂëµÄ£¬ËüÃÇפÁôÔÚ»úÆ÷ÄÚ´æÖУ¬ÇÒ°üº¬ËùÓдúÂëÖ´ÐÐËùÐèÒªµÄÐÅÏ¢¡£
* Õ»vs¶Ñ£ºÓÐʲô²»Í¬£¿
Õ»¸ºÔð±£´æÎÒÃǵĴúÂëÖ´ÐУ¨»òµ÷Óã©Â·¾¶,¶ø¶ÑÔò¸ºÔð±£´æ¶ÔÏ󣨻òÕß˵Êý¾Ý£¬½ÓÏÂÀ´½«Ì¸µ½ºÜ¶à¹ØÓڶѵÄÎÊÌ⣩µÄ·¾¶¡£
¿ÉÒÔ½«Õ»ÏëÏó³ÉÒ»¶Ñ´Ó¶¥Ïò϶ѵþµÄºÐ×Ó¡£µ±Ã¿µ÷ÓÃÒ»´Î·½·¨Ê±£¬ÎÒÃǽ«Ó¦ÓóÌÐòÖÐËùÒª·¢ÉúµÄÊÂÇé¼Ç¼ÔÚÕ»¶¥µÄÒ»¸öºÐ×ÓÖÐ,¶øÎÒÃÇÿ´ÎÖ»Äܹ»Ê¹ÓÃÕ»¶¥µÄÄǸöºÐ×Ó¡£µ±ÎÒÃÇÕ»¶¥µÄºÐ×Ó±»Ê¹ÓÃÍêÖ®ºó£¬»òÕß˵·½·¨Ö´ÐÐÍê±ÏÖ®ºó£¬ÎÒÃǽ«Å׿ªÕâ¸öºÐ×ÓÈ»ºó¼ÌÐøʹÓÃÕ»¶¥ÉϵÄкÐ×Ó¡£¶ÑµÄ¹¤×÷ÔÀí±È½ÏÏàËÆ£¬µ«´ó¶àÊýʱºò¶ÑÓÃ×÷±£´æÐÅÏ¢¶ø·Ç±£´æÖ´Ðз¾¶£¬Òò´Ë¶ÑÄܹ»ÔÚÈÎÒâʱ¼ä±»·ÃÎÊ¡£ÓëÕ»Ïà±È¶ÑûÓÐÈκηÃÎÊÏÞÖÆ£¬¶Ñ¾ÍÏñ´²ÉϵľÉÒ·þ£¬ÎÒÃDz¢Ã»Óл¨Ê±¼äÈ¥ÕûÀí£¬ÄÇÊÇÒòΪ¿ÉÒÔËæʱÕÒµ½Ò»¼þÎÒÃÇÐèÒªµÄÒ·þ£¬¶øÕ»¾ÍÏñ´¢Îï¹ñÀï¶ÑµþµÄЬºÐ£¬ÎÒÃÇÖ»ÄÜ´Ó×²ãµÄºÐ×Ó¿ªÊ¼È¡£¬Ö±µ½·¢ÏÖÄÇÖ»ºÏÊʵġ£
ÒÔÉÏͼƬ²¢²»ÊÇÄÚ´æÖÐÕæʵµÄ±íÏÖÐÎʽ£¬µ«Äܹ»°ïÖúÎÒÃÇÇø·ÖÕ»ºÍ¶Ñ¡£
Õ»ÊÇ×ÔÐÐά»¤µÄ£¬Ò²¾ÍÊÇ˵ÄÚ´æ×Ô¶¯Î¬»¤Õ»£¬µ±Õ»¶¥µÄºÐ×Ó²»ÔÙ±»Ê¹Óã¬Ëü½«±»Å׳ö¡£Ïà·´µÄ£¬¶ÑÐèÒª¿¼ÂÇÀ¬»ø»ØÊÕ£¬À¬»ø»ØÊÕÓÃÓÚ±£³Ö¶ÑµÄÕû½àÐÔ£¬Ã»ÓÐÈËÔ¸Òâ¿´µ½ÖÜΧ¶¼ÊÇÔßÒ·þ£¬ÄǼòֱ̫³ôÁË£¡
* Õ»ºÍ¶ÑÀïÓÐЩʲô£¿
µ±ÎÒÃǵĴúÂëÖ´ÐеÄʱºò£¬Õ»ºÍ¶ÑÖÐÖ÷Òª·ÅÖÃÁËËÄÖÖÀàÐ͵ÄÊý¾Ý£ºÖµÀàÐÍ(Value Type)£¬ÒýÓÃÀàÐÍ(Reference Type)£¬Ö¸Õë(Pointer)£¬Ö¸Áî(Instruction)¡£
1.ÖµÀàÐÍ£º
ÔÚC#ÖУ¬ËùÓб»ÉùÃ÷ΪÒÔÏÂÀàÐ͵ÄÊÂÎï±»³ÆΪֵÀàÐÍ£º- bool
- byte
- char
- decimal
- double
- enum
- float
- int
- long
- sbyte
- short
- struct
- uint
- ulong
- ushort
2.ÒýÓÃÀàÐÍ£º
ËùÓеı»ÉùÃ÷ΪÒÔÏÂÀàÐ͵ÄÊÂÎï±»³ÆΪÒýÓÃÀàÐÍ£º
- class
- interface
- delegate
- object
- string
3.Ö¸Õ룺
ÔÚÄÚ´æ¹ÜÀí·½°¸ÖзÅÖõĵÚÈýÖÖÀàÐÍÊÇÀàÐÍÒýÓã¬ÒýÓÃͨ³£¾ÍÊÇÒ»¸öÖ¸Õë¡£ÎÒÃDz»»áÏÔʾµÄʹÓÃÖ¸Õ룬ËüÃÇÓɹ«¹²ÓïÑÔÔËÐÐʱ£¨CLR£©À´¹ÜÀí¡£Ö¸Õ루»òÒýÓã©ÊDz»Í¬ÓÚÒýÓÃÀàÐ͵ģ¬ÊÇÒòΪµ±ÎÒÃÇ˵ij¸öÊÂÎïÊÇÒ»¸öÒýÓÃÀàÐÍʱ¾ÍÒâζ×ÅÎÒÃÇÊÇͨ¹ýÖ¸ÕëÀ´·ÃÎÊËüµÄ¡£Ö¸ÕëÊÇÒ»¿éÄÚ´æ¿Õ¼ä£¬¶øËüÖ¸ÏòÁíÒ»¸öÄÚ´æ¿Õ¼ä¡£¾ÍÏñÕ»ºÍ¶ÑÒ»Ñù£¬Ö¸ÕëҲͬÑùÒªÕ¼ÓÃÄÚ´æ¿Õ¼ä£¬µ«ËüµÄÖµÊÇÒ»¸öÄÚ´æµØÖ·»òÕßΪ¿Õ¡£
4.Ö¸Á
ÔÚºóÃæµÄÎÄÕÂÖÐÄã»á¿´µ½Ö¸ÁîÊÇÈçºÎ¹¤×÷µÄ...
* ÈçºÎ¾ö¶¨·ÅÄĶù?
ÕâÀïÓÐÒ»Ìõ»Æ½ð¹æÔò:
1. ÒýÓÃÀàÐÍ×ÜÊÇ·ÅÔÚ¶ÑÖС£(¹»¼òµ¥µÄ°É?)
2. ÖµÀàÐͺÍÖ¸Õë×ÜÊÇ·ÅÔÚËüÃDZ»ÉùÃ÷µÄµØ·½¡£(ÕâÌõÉÔ΢¸´Ôӵ㣬ÐèÒªÖªµÀÕ»ÊÇÈçºÎ¹¤×÷µÄ£¬È»ºó²ÅÄܶ϶¨ÊÇÔÚÄĶù±»ÉùÃ÷µÄ¡£)
¾ÍÏñÎÒÃÇÏÈÇ°Ìáµ½µÄ£¬Õ»ÊǸºÔð±£´æÎÒÃǵĴúÂëÖ´ÐÐ(»òµ÷ÓÃ)ʱµÄ·¾¶¡£µ±ÎÒÃǵĴúÂ뿪ʼµ÷ÓÃÒ»¸ö·½·¨Ê±,½«·ÅÖÃÒ»¶Î±àÂëÖ¸Áî(ÔÚ·½·¨ÖÐ)µ½Õ»ÉÏ,½ô½Ó×Å·ÅÖ÷½·¨µÄ²ÎÊý£¬È»ºó´úÂëÖ´Ðе½·½·¨Öеı»¡°Ñ¹Õ»¡±ÖÁÕ»¶¥µÄ±äÁ¿Î»Öá£Í¨¹ýÒÔÏÂÀý×ÓºÜÈÝÒ×Àí½â...
ÏÂÃæÊÇÒ»¸ö·½·¨£¨Method£©:
- <STRONG class=k>public</STRONG> <STRONG class=k>int</STRONG> AddFive(<STRONG class=k>int</STRONG> pValue)
- {
- <STRONG class=k>int</STRONG> result;
- result = pValue + 5;
- <STRONG class=k>return</STRONG> result;
- }
public int AddFive(int pValue) { int result; result = pValue + 5; return result; }
ÏÖÔÚ¾ÍÀ´¿´¿´ÔÚÕ»¶¥·¢ÉúÁËЩʲô£¬¼ÇסÎÒÃÇËù¹Û²ìµÄÕ»¶¥ÏÂʵ¼ÊÒѾѹÈëÁËÐí¶à±ðµÄÄÚÈÝ¡£
Ê×ÏÈ·½·¨£¨Ö»°üº¬ÐèÒªÖ´ÐеÄÂß¼×Ö½Ú£¬¼´Ö´Ðи÷½·¨µÄÖ¸Á¶ø·Ç·½·¨ÌåÄÚµÄÊý¾Ý£©ÈëÕ»£¬½ô½Ó×ÅÊÇ·½·¨µÄ²ÎÊýÈëÕ»¡££¨ÎÒÃǽ«ÔÚºóÃæÌÖÂÛ¸ü¶àµÄ²ÎÊý´«µÝ£©
½Ó×Å£¬¿ØÖÆ£¨¼´Ö´Ðз½·¨µÄỊ̈߳©±»´«µÝµ½¶ÑÕ»ÖÐAddFive()µÄÖ¸ÁîÉÏ£¬
µ±·½·¨Ö´ÐÐʱ£¬ÎÒÃÇÐèÒªÔÚÕ»ÉÏΪ¡°result¡±±äÁ¿·ÖÅäһЩÄڴ棬
The method finishes execution and our result is returned.
·½·¨Ö´ÐÐÍê³É£¬È»ºó·½·¨µÄ½á¹û±»·µ»Ø¡£
ͨ¹ý½«Õ»Ö¸ÕëÖ¸ÏòAddFive()·½·¨ÔøʹÓõĿÉÓõÄÄÚ´æµØÖ·£¬ËùÓÐÔÚÕ»Éϵĸ÷½·¨ËùʹÓÃÄڴ涼±»Çå¿Õ£¬ÇÒ³ÌÐò½«×Ô¶¯»Øµ½Õ»ÉÏ×î³õµÄ·½·¨µ÷ÓõÄλÖÃ(ÔÚ±¾ÀýÖв»»á¿´µ½)¡£
ÔÚÕâ¸öÀý×ÓÖУ¬ÎÒÃǵÄ"result"±äÁ¿ÊDZ»·ÅÖÃÔÚÕ»Éϵģ¬ÊÂʵÉÏ£¬µ±ÖµÀàÐÍÊý¾ÝÔÚ·½·¨ÌåÖб»ÉùÃ÷ʱ£¬ËüÃǶ¼ÊDZ»·ÅÖÃÔÚÕ»Éϵġ£
ÖµÀàÐÍÊý¾ÝÓÐʱҲ±»·ÅÖÃÔÚ¶ÑÉÏ¡£¼ÇסÕâÌõ¹æÔò--ÖµÀàÐÍ×ÜÊÇ·ÅÔÚËüÃDZ»ÉùÃ÷µÄµØ·½¡£ºÃµÄ£¬Èç¹ûÒ»¸öÖµÀàÐÍÊý¾ÝÔÚ·½·¨ÌåÍâ±»ÉùÃ÷£¬ÇÒ´æÔÚÓÚÒ»¸öÒýÓÃÀàÐÍÖУ¬ÄÇôËü½«±»¶ÑÖеÄÒýÓÃÀàÐÍËùÈ¡´ú¡£
À´¿´ÁíÒ»¸öÀý×Ó£º
¼ÙÈçÎÒÃÇÓÐÕâÑùÒ»¸öMyIntÀࣨËüÊÇÒýÓÃÀàÐÍÒòΪËüÊÇÒ»¸öÀàÀàÐÍ£©£º
È»ºóÖ´ÐÐÏÂÃæµÄ·½·¨:
- <STRONG class=k>public</STRONG> MyInt AddFive(<STRONG class=k>int</STRONG> pValue)
- {
- MyInt result = <STRONG class=k>new</STRONG> MyInt();
- result.MyValue = pValue + 5;
- <STRONG class=k>return</STRONG> result;
- }
public MyInt AddFive(int pValue) { MyInt result = new MyInt(); result.MyValue = pValue + 5; return result; }
¾ÍÏñÇ°ÃæÌáµ½µÄ£¬·½·¨¼°·½·¨µÄ²ÎÊý±»·ÅÖõ½Õ»ÉÏ£¬½ÓÏÂÀ´£¬¿ØÖƱ»´«µÝµ½¶ÑÕ»ÖÐAddFive()µÄÖ¸ÁîÉÏ¡£
½Ó×Å»á³öÏÖһЩÓÐȤµÄÏÖÏó...
ÒòΪ"MyInt"ÊÇÒ»¸öÒýÓÃÀàÐÍ,Ëü½«±»·ÅÖÃÔÚ¶ÑÉÏ,ͬʱÔÚÕ»ÉÏÉú³ÉÒ»¸öÖ¸ÏòÕâ¸ö¶ÑµÄÖ¸ÕëÒýÓá£
ÔÚAddFive()·½·¨±»Ö´ÐÐÖ®ºó£¬ÎÒÃǽ«Çå¿Õ...
ÎÒÃǽ«Ê£Ï¹¶ÀµÄMyInt¶ÔÏóÔÚ¶ÑÖУ¨Õ»Öн«²»»á´æÔÚÈκÎÖ¸ÏòMyInt¶ÔÏóµÄÖ¸Õë!£©
Õâ¾ÍÊÇÀ¬»ø»ØÊÕÆ÷£¨ºó¼ò³ÆGC£©Æð×÷Óõĵط½¡£µ±ÎÒÃǵijÌÐò´ïµ½ÁËÒ»¸öÌض¨µÄÄÚ´æ·§Öµ£¬ÎÒÃÇÐèÒª¸ü¶àµÄ¶Ñ¿Õ¼äµÄʱºò£¬GC¿ªÊ¼Æð×÷Óá£GC½«Í£Ö¹ËùÓÐÕýÔÚÔËÐеÄỊ̈߳¬ÕÒ³öÔÚ¶ÑÖдæÔÚµÄËùÓв»ÔÙ±»Ö÷³ÌÐò·ÃÎʵĶÔÏ󣬲¢É¾³ýËüÃÇ¡£È»ºóGC»áÖØÐÂ×éÖ¯¶ÑÖÐËùÓÐʣϵĶÔÏóÀ´½ÚÊ¡¿Õ¼ä£¬²¢µ÷ÕûÕ»ºÍ¶ÑÖÐËùÓÐÓëÕâЩ¶ÔÏóÏà¹ØµÄÖ¸Õë¡£Äã¿Ï¶¨»áÏëµ½Õâ¸ö¹ý³Ì·Ç³£ºÄ·ÑÐÔÄÜ£¬ËùÒÔÕâʱÄã¾Í»áÖªµÀΪʲôÎÒÃÇÐèÒªÈç´ËÖØÊÓÕ»ºÍ¶ÑÀïÓÐЩʲô£¬ÌرðÊÇÔÚÐèÒª±àд¸ßÐÔÄܵĴúÂëʱ¡£
Ok... ÕâÌ«°ôÁË, µ±ËüÊÇÈçºÎÓ°ÏìÎҵģ¿
Good question.
µ±ÎÒÃÇʹÓÃÒýÓÃÀàÐÍʱ£¬ÎÒÃÇʵ¼ÊÊÇÔÚ´¦Àí¸ÃÀàÐ͵ÄÖ¸Õ룬¶ø·Ç¸ÃÀàÐͱ¾Éí¡£µ±ÎÒÃÇʹÓÃÖµÀàÐÍʱ£¬ÎÒÃÇÊÇÔÚʹÓÃÖµÀàÐͱ¾Éí¡£ÌýÆðÀ´ºÜÃÔºý°É£¿
ͬÑù£¬Àý×ÓÊÇ×îºÃµÄÃèÊö¡£
¼ÙÈçÎÒÃÇÖ´ÐÐÒÔϵķ½·¨£º
- <STRONG class=k>public</STRONG> <STRONG class=k>int</STRONG> ReturnValue()
- {
- <STRONG class=k>int</STRONG> x = <STRONG class=k>new</STRONG> <STRONG class=k>int</STRONG>();
- x = 3;
- <STRONG class=k>int</STRONG> y = <STRONG class=k>new</STRONG> <STRONG class=k>int</STRONG>();
- y = x;
- y = 4;
- <STRONG class=k>return</STRONG> x;
- }
public int ReturnValue() { int x = new int(); x = 3; int y = new int(); y = x; y = 4; return x; }
ÎÒÃǽ«µÃµ½Öµ3£¬ºÜ¼òµ¥£¬¶Ô°É£¿
¼ÙÈçÎÒÃÇÊ×ÏÈʹÓÃMyIntÀà
- {
- <STRONG class=k>public</STRONG> <STRONG class=k>int</STRONG> MyValue;
- }
public class MyInt { public int MyValue; }
½Ó×ÅÖ´ÐÐÒÔϵķ½·¨£º
- <STRONG class=k>public</STRONG> <STRONG class=k>int</STRONG> ReturnValue2()
- {
- MyInt x = <STRONG class=k>new</STRONG> MyInt();
- x.MyValue = 3;
- MyInt y = <STRONG class=k>new</STRONG> MyInt();
- y = x;
- y.MyValue = 4;
- <STRONG class=k>return</STRONG> x.MyValue;
- }
public int ReturnValue2() { MyInt x = new MyInt(); x.MyValue = 3; MyInt y = new MyInt(); y = x; y.MyValue = 4; return x.MyValue; }
ÎÒÃǽ«µÃµ½Ê²Ã´£¿... 4!
Ϊʲô£¿... x.MyValueÔõô»á±ä³É4ÁËÄØ£¿... ¿´¿´ÎÒÃÇËù×öµÄÈ»ºó¾ÍÖªµÀÊÇÔõô»ØÊÂÁË£º
ÔÚµÚÒ»Àý×ÓÖУ¬Ò»Çж¼Ïñ¼Æ»®µÄÄÇÑù½øÐÐ×Å£º
ÔÚµÚ¶þ¸öÀý×ÓÖУ¬ÎÒÃÇûÓеõ½"3"ÊÇÒòΪ±äÁ¿"x"ºÍ"y"¶¼Í¬Ê±Ö¸ÏòÁ˶ÑÖÐÏàͬµÄ¶ÔÏó¡£
Ï£ÍûÒÔÉÏÄÚÈÝÄܹ»Ê¹Äã¶ÔC#ÖеÄÖµÀàÐͺÍÒýÓÃÀàÐ͵Ļù±¾Çø±ðÓÐÒ»¸ö¸üºÃµÄÈÏʶ£¬²¢ÇÒ¶ÔÖ¸Õë¼°Ö¸ÕëÊǺÎʱ±»Ê¹ÓõÄÓÐÒ»¶¨µÄ»ù±¾Á˽⡣ÔÚϵÁеÄÏÂÒ»¸ö²¿·Ö£¬ÎÒÃǽ«ÉîÈëÄÚ´æ¹ÜÀí²¢×¨ÃÅÌÖÂÛ·½·¨²ÎÊý¡£ -
web½çÃæ²âÊÔÓÃÀý
2009-03-19 14:24:24
ת×ÔÎÔÁú¹«×ӵĿռ䣺http://www.51testing.com/?161964/action_viewspace_itemid_76943.html
½çÃæ²âÊÔÓÃÀý
Ò»¡¢Îı¾¿ò¡¢°´Å¥µÈ¿Ø¼þ²âÊÔ51TestingÈí¼þ²âÊÔÍøK_$\7b+K)DK
1¡¢Îı¾¿òµÄ²âÊÔ51TestingÈí¼þ²âÊÔÍø#DUS0W1ft"MP
ÈçºÎ¶ÔÎı¾¿ò½øÐвâÊÔ£º51TestingÈí¼þ²âÊÔÍø"]_)I,gb#w
a¡¢ÊäÈëÕý³£µÄ×Öĸ»òÊý×Ö£»
hygk4e160281b¡¢ÊäÈëÒÑ´æÔÚµÄÎļþµÄÃû³Æ£»
"N e-H r%[160281c¡¢ÊäÈ볬³¤×Ö·û¡£ÀýÈçÔÚ¡°Ãû³Æ¡±¿òÖÐÊäÈ볬¹ýÔÊÐí±ß½ç¸öÊýµÄ×Ö·û£¬¼ÙÉè×î¶à255¸ö×Ö·û£¬³¢ÊÔÊäÈë256¸ö×Ö·û£¬¼ì²é³ÌÐòÄÜ·ñÕýÈ·´¦Àí£»51TestingÈí¼þ²âÊÔÍø4|w P/nMG
d¡¢ÊäÈëĬÈÏÖµ£¬¿Õ°×£¬¿Õ¸ñ£»
Zh!i^*W;l&q2sy160281e¡¢ÈôÖ»ÔÊÐíÊäÈë×Öĸ£¬³¢ÊÔÊäÈëÊý×Ö£»·´Ö®£¬³¢ÊÔÊäÈë×Öĸ£»
e!A/@5P.W5co`M160281f¡¢ÀûÓø´ÖÆ£¬Õ³ÌùµÈ²Ù×÷Ç¿ÖÆÊäÈë³ÌÐò²»ÔÊÐíµÄÊäÈëÊý¾Ý£»
o}y6PkuIv160281g¡¢ÊäÈëÌØÊâ×Ö·û¼¯£¬ÀýÈ磬NUL¼°\nµÈ£»51TestingÈí¼þ²âÊÔÍø:BU4KV Xf#@k `
h¡¢ÊäÈ볬¹ýÎı¾¿ò³¤¶ÈµÄ×Ö·û»òÎı¾£¬¼ì²éËùÊäÈëµÄÄÚÈÝÊÇ·ñÕý³£ÏÔʾ£»51TestingÈí¼þ²âÊÔÍø(kcY0j,j XU6J(V
i¡¢ÊäÈë²»·ûºÏ¸ñʽµÄÊý¾Ý£¬¼ì²é³ÌÐòÊÇ·ñÕý³£Ð£Ñ飬Èç³ÌÐòÒªÇóÊäÈëÄêÔÂÈÕ¸ñʽΪyy/mm/dd£¬Êµ¼ÊÊäÈëyyyy/mm/dd£¬³ÌÐòÓ¦¸Ã¸ø³ö´íÎóÌáʾ¡£51TestingÈí¼þ²âÊÔÍø;R!dV` UcJÔÚ²âÊÔ¹ý³ÌÖÐËùÓõ½µÄ²âÊÔ·½·¨£º
e u1~;^4A+V1602811¡¢ÊäÈë·Ç·¨Êý¾Ý£»51TestingÈí¼þ²âÊÔÍø7?9e|*{1r?
yraK,l160281
2¡¢ÊäÈëĬÈÏÖµ£»
#v g+vt6x0w!pJ1602813¡¢ÊäÈëÌØÊâ×Ö·û¼¯£»
{ C B'j.bq8K d+J5E S-I7X1602814¡¢ÊäÈëʹ»º³åÇøÒç³öµÄÊý¾Ý£»51TestingÈí¼þ²âÊÔÍøz{"HV2pnY
5¡¢ÊäÈëÏàͬµÄÎļþÃû£»2¡¢ÃüÁî°´Å¥¿Ø¼þµÄ²âÊÔ51TestingÈí¼þ²âÊÔÍø Y E"d } k MmN
²âÊÔ·½·¨£º51TestingÈí¼þ²âÊÔÍøg%Xv8G Gw
a¡¢µã»÷°´Å¥ÕýÈ·ÏìÓ¦²Ù×÷¡£Èçµ¥»÷È·¶¨£¬ÕýÈ·Ö´ÐвÙ×÷£»µ¥»÷È¡Ïû£¬Í˳ö´°¿Ú£»
X{7tPg5]4Rf160281b¡¢¶Ô·Ç·¨µÄÊäÈë»ò²Ù×÷¸ø³ö×ã¹»µÄÌáʾ˵Ã÷£¬ÈçÊäÈëÔ¹¤×÷ÌìÊýΪ32ʱ£¬µ¥»÷¡°È·¶¨¡±ºóϵͳӦÌáʾ£ºÌìÊý²»ÄÜ´óÓÚ31£»51TestingÈí¼þ²âÊÔÍøjfBAVMi
c¡¢¶Ô¿ÉÄÜÔì³ÉÊý¾ÝÎÞ·¨»Ö¸´µÄ²Ù×÷±ØÐë¸ø³öÈ·ÈÏÐÅÏ¢£¬¸øÓû§·ÅÆúÑ¡ÔñµÄ»ú»á£»51TestingÈí¼þ²âÊÔÍø_PGf1sP(?"A3¡¢µ¥Ñ¡°´Å¥¿Ø¼þµÄ²âÊÔ
z _&|V$QX!v160281²âÊÔ·½·¨£º
.x)o'Qnt(q160281a¡¢Ò»×鵥ѡ°´Å¥²»ÄÜͬʱѡÖУ¬Ö»ÄÜÑ¡ÖÐÒ»¸ö£»51TestingÈí¼þ²âÊÔÍø%S?.ukCkg
#n W8H1N{160281
b¡¢ÖðÒ»Ö´ÐÐÿ¸öµ¥Ñ¡°´Å¥µÄ¹¦ÄÜ¡£·Ö±ðÑ¡ÔñÁË¡°ÄС±¡¢¡°Å®¡±ºó£¬±£´æµ½Êý¾Ý¿âµÄÊý¾ÝÓ¦¸ÃÏàÓ¦µÄ·Ö±ðΪ¡°ÄС±¡¢¡°Å®¡±£»
4X"l f8^g eHEX160281c¡¢Ò»×éÖ´ÐÐͬһ¹¦Äܵĵ¥Ñ¡°´Å¥ÔÚ³õʼ״̬ʱ±ØÐëÓÐÒ»¸ö±»Ä¬ÈÏÑ¡ÖУ¬²»ÄÜͬʱΪ¿Õ¡£
:K.E7M#foop16028151TestingÈí¼þ²âÊÔÍø(S rDj*gN6v2y ?
4¡¢up£down¿Ø¼þÎı¾¿òµÄ²âÊÔ²âÊÔ·½·¨£º
@9L,Y5F@+d160281a¡¢Ö±½ÓÊäÈëÊý×Ö»òÓÃÉÏϼýÍ·¿ØÖÆ£¬ÈçÔÚ¡°ÊýÄ¿¡±ÖÐÖ±½ÓÊäÈë10£¬»òÕßµ¥»÷ÏòÉϵļýÍ·£¬Ê¹ÊýÄ¿±äΪ10£»51TestingÈí¼þ²âÊÔÍø:ba Tk^ W
b¡¢ÀûÓÃÉÏϼýÍ·¿ØÖÆÊý×ÖµÄ×Ô¶¯Ñ»·£¬Èçµ±×î¶àÊý×ÖΪ253ʱ£¬µ¥»÷ÏòÉϼýÍ·£¬ÊýÄ¿×Ô¶¯±äΪ1£»·´Ö®ÒàÊÊÓã»
0Tw _$x.?k c160281c¡¢Ö±½ÓÊäÈ볬±ß½çÖµ£¬ÏµÍ³Ó¦¸ÃÌáʾÖØÐÂÊäÈ룻51TestingÈí¼þ²âÊÔÍø+y+KSf/H)}b
d¡¢ÊäÈëĬÈÏÖµ£¬¿Õ°×¡£Èç¡°²åÈ롱ÊýĿΪĬÈÏÖµ£¬µã»÷¡°È·¶¨¡±£»»òɾ³ýĬÈÏÖµ£¬Ê¹ÄÚÈÝΪ¿Õ£¬µ¥»÷¡°È·¶¨¡±½øÐвâÊÔ£»51TestingÈí¼þ²âÊÔÍømE\%a%z}DM
e¡¢ÊäÈë×Ö·û¡£´ËʱϵͳӦÌáʾÊäÈëÓÐÎó¡£51TestingÈí¼þ²âÊÔÍø?!nQ%S9[J_,f5¡¢×éºÏÁбí¿òµÄ²âÊÔ
w P9a-S G"xp160281²âÊÔ·½·¨£º
)^#mc[7j(P[6P9l0_B SY~160281a¡¢ÌõÄ¿ÄÚÈÝÕýÈ·£¬ÆäÏêϸÌõÄ¿ÄÚÈÝ¿ÉÒÔ¸ù¾ÝÐèÇó˵Ã÷È·¶¨£»
Hf'wnb$N6S160281
7{ kbR W9Wa:p8r6T160281b¡¢ÖðÒ»Ö´ÐÐÁбí¿òÖÐÿ¸öÌõÄ¿µÄ¹¦ÄÜ£»51TestingÈí¼þ²âÊÔÍø]N4|9B_:\*H
c¡¢¼ì²éÄÜ·ñÏò×éºÏÁбí¿òÊäÈëÊý¾Ý¡£6¡¢¸´Ñ¡¿òµÄ²âÊÔ
4j,| o`pMo [u D160281²âÊÔ·½·¨£º51TestingÈí¼þ²âÊÔÍøp&[ o+rqC2@7O$[
a¡¢¶à¸ö¸´Ñ¡¿ò¿ÉÒÔ±»Í¬Ê±Ñ¡ÖУ»
}[ daUO160281b¡¢¶à¸ö¸´Ñ¡¿ò¿ÉÒÔ±»²¿·ÖÑ¡ÖУ»51TestingÈí¼þ²âÊÔÍø/Vz0^+C:Y)Q(Dy-E
c¡¢¶à¸ö¸´Ñ¡¿ò¿ÉÒÔ¶¼²»±»Ñ¡ÖУ»51TestingÈí¼þ²âÊÔÍø5J*pI#A-CUb"a-m
d¡¢ÖðÒ»Ö´ÐÐÿ¸ö¸´Ñ¡¿òµÄ¹¦ÄÜ¡£51TestingÈí¼þ²âÊÔÍøh@"SZ5Z7¡¢Áбí¿ò¿Ø¼þµÄ²âÊÔ
8C1_8a Kuf4{z,v_160281²âÊÔ·½·¨£º51TestingÈí¼þ²âÊÔÍøj*I5M9sd,K
a¡¢ÌõÄ¿ÄÚÈÝÕýÈ·£ºÍ¬×éºÏÁбí¿òÀàËÆ£¬¸ù¾ÝÐèÇó˵Ã÷ÊéÈ·¶¨ÁбíµÄ¸÷ÏîÄÚÈÝÕýÈ·£¬Ã»ÓжªÊ§»ò´íÎó£»
Bf8K I1\%r0o160281b¡¢Áбí¿òµÄÄÚÈݽ϶àʱҪʹÓùö¶¯Ìõ£»51TestingÈí¼þ²âÊÔÍøB X&?*s9[_l
c¡¢Áбí¿òÔÊÐí¶àѡʱ£¬Òª·Ö±ð¼ì²éshiftÑ¡ÖÐÌõÄ¿£¬°´ctrlÑ¡ÖÐÌõÄ¿ºÍÖ±½ÓÓÃÊó±êÑ¡ÖжàÏîÌõÄ¿µÄÇé¿ö£»51TestingÈí¼þ²âÊÔÍøq Q un?o%L8¡¢¹ö¶¯Ìõ¿Ø¼þµÄ²âÊÔ
2p(O:J,w}bM*|160281ҪעÒâһϼ¸µã£º51TestingÈí¼þ²âÊÔÍøCO cP Yf
a¡¢¹ö¶¯ÌõµÄ³¤¶È¸ù¾ÝÏÔʾÐÅÏ¢µÄ³¤¶È»ò¿í¶È¼°Ê±±ä»»£¬ÕâÑùÓÐÀûÓÚÓû§Á˽âÏÔʾÐÅÏ¢µÄλÖúͰٷֱȣ¬ÈçwordÖÐä¯ÀÀ100Ò³Îĵµ£¬ä¯ÀÀµ½50ҳʱ£¬¹ö¶¯ÌõλÖÃÓ¦´¦ÓÚÖм䣻51TestingÈí¼þ²âÊÔÍø2Z3x t E7}J*P7D
b¡¢Í϶¯¹ö¶¯Ìõ£¬¼ì²éÆÁĻˢÐÂÇé¿ö£¬²¢²é¿´ÊÇ·ñÓÐÂÒÂ룻
ThkXf160281c¡¢µ¥»÷¹ö¶¯Ìõ£»
:xM!y*MLd ru%T160281d¡¢ÓùöÂÖ¿ØÖƹö¶¯Ìõ£»51TestingÈí¼þ²âÊÔÍø:v T Sx%goV
e¡¢¹ö¶¯ÌõµÄÉÏÏ°´Å¥¡£51TestingÈí¼þ²âÊÔÍø%V%f$w!O(n4yG&vV9¡¢¸÷ÖֿؼþÔÚ´°ÌåÖлìºÍʹÓÃʱµÄ²âÊÔ51TestingÈí¼þ²âÊÔÍø3p3^)eTIy-T
a¡¢¿Ø¼þ¼äµÄÏ໥×÷Óã»
-@ zv_Tm0gGZ*QA160281b¡¢tab¼üµÄ˳Ðò£¬Ò»°ãÊÇ´ÓÉϵ½Ï£¬´Ó×óµ½ÓÒ£»51TestingÈí¼þ²âÊÔÍøH`&ux:EW m-N9?
c¡¢ÈȼüµÄʹÓã¬ÖðÒ»²âÊÔ£»
tGf&b tEH3U160281d¡¢enter¼üºÍesc¼üµÄʹÓá£51TestingÈí¼þ²âÊÔÍø0Yr R)z`MÔÚ²âÊÔÖУ¬Ó¦×ñÑÓɼòÈë·±µÄÔÔò£¬ÏȽøÐе¥¸ö¿Ø¼þ¹¦ÄܵIJâÊÔ£¬È·±£ÊµÏÖÎÞÎóºó£¬ÔÙ½øÐжà¸ö¿Ø¼þµÄµÄ¹¦ÄÜ×éºÏµÄ²âÊÔ¡£51TestingÈí¼þ²âÊÔÍøw/{U4_tm`3``;M
ps£ºÃÜÂëÊäÈë¿ò²âÊÔʱҪÌرð×¢Òâ½øÐÐ×Öĸ´óдÊäÈëµÄ²âÊÔ¡£¶þ¡¢²éÕÒÌæ»»²Ù×÷
8W;P$Iy(NZ160281°¸ÀýÑÝʾ£º´ò¿ªwordÖеġ°Ìæ»»¡±¶Ô»°¿ò¡£
n0Eb G:jJ4T*B-B3W160281²âÊÔ±¾¹¦ÄÜÓÐͨ¹ý²âÊÔºÍʧ°Ü²âÊÔÁ½ÖÖÇé¿ö£º51TestingÈí¼þ²âÊÔÍø!WT'J4wj5]'q
ͨ¹ý²âÊÔ£º51TestingÈí¼þ²âÊÔÍø9I W eX uh)M!V
1¡¢ÊäÈëÄÚÈÝÖ±½Ó²éÕÒ¡¢»ò²éÕÒÈ«²¿£»51TestingÈí¼þ²âÊÔÍøI;D?G)Tw
2¡¢ÔÚ×éºÏ¿òÖÐÑ°ÕÒÒѾ²éÕÒ¹ýµÄÄÚÈÝ¡¢ÔٴβéÕÒ²¢È·ÈÏÎĵµµÄÄÚÈÝÕýÈ·£¬ÈçÒѾ²éÕÒ¹ý¡°²âÊÔÓÃÀý¡±¡¢ÔٴνøÈë²»ÓÃÖØÐÂÊäÈë²éÕÒÄÚÈÝ¡¢Ö±½ÓÔÚÎĵµÖÐËÑÑ°¾Í¿ÉÒÔ¡£51TestingÈí¼þ²âÊÔÍøk.pF,Ak8LQ_ rʧ°Ü²âÊÔ£º51TestingÈí¼þ²âÊÔÍø`[&M `#O_/j6a
1¡¢ÊäÈë¹ý³¤»ò¹ý¶ÌµÄ²éѯ×Ö·û´®¡£Èç¼ÙÉè²éѯµÄ×Ö·û´®³¤¶ÈΪ1µ½255£¬ÄÇô£¬ÊäÈë0¡¢1¡¢2¡¢256¡¢255ºÍ254½øÐвâÊÔ£»
0x)_6\-EU P+^/N6n160281
q5z\U;GUF1602812¡¢ÊäÈëÌØÊâ×Ö·û¼¯¡£ÈçÔÚwordÖÐ^g´ú±íͼƬ¡¢^´ú±í·ÖÀ¸·û¡¢¿ÉÒÔÊäÈëÕâÀàÌØÊâ×Ö·û²âÊÔ£»Ìæ»»²âÊÔ´óÌåÏàͬ¡£
:@ w!BZ-q`Uc6T160281¹ØÓڱ༲Ù×÷´°¿ÚµÄ¹¦ÄܲâÊÔµÄÓÃÀý£º
sh#H(D]1602811¡¢¹Ø±Õ²éÕÒÌæ»»´°¿Ú¡£²»Ö´ÐÐÈκβÙ×÷¡¢Ö±½ÓÍ˳ö£»51TestingÈí¼þ²âÊÔÍø8cN}LV R[n p(aVI\
][8Z O4rKft160281
2¡¢¸½¼þºÍÑ¡Ïî²âÊÔ¡£¼ÙÈçÉ趨¡°¾«È·ËÑÑ°¡±¡¢¡°Ïòºó¡±ËÑË÷µÈ¸½¼þÑ¡ÏîµÈµÈÀ´²âÊÔ£»51TestingÈí¼þ²âÊÔÍø6GL_:{_Q
3¡¢¿Ø¼þ¼äµÄÏ໥×÷Óá£ÈçËÑÑ°ÄÚÈÝΪ¿Õʱ¡¢°´Å¥¡°ËÑÑ°È«²¿¡±¡¢¡°ËÑÑ°¡±¡¢¡°È«²¿Ìæ»»¡±¡¢¡°Ìæ»»¡±¶¼Îª»ÒÉ«¡£51TestingÈí¼þ²âÊÔÍø`xdTeoK6x'T@
4¡¢Èȼü¡¢Tab¼ü¡£»Ø³µ¼üµÄʹÓᣲåÈë²Ù×÷
2em0c_5t-]&N.v2m9zr1602811¡¢²åÈëÎļþ
ABq8Oe3X160281²âÊÔµÄÇé¿ö£º51TestingÈí¼þ²âÊÔÍø9Q"k/S.q/QYCiV
a¡¢²åÈëÎļþ£»51TestingÈí¼þ²âÊÔÍøL`m2M,e0n%V8[5Mq
`g8x!F+iA5H160281
b¡¢²åÈëͼÏñ£»51TestingÈí¼þ²âÊÔÍøt U[.sida e
c¡¢ÔÚÎĵµÖвåÈëÎĵµ±¾Éí£»
k-f"?| T$Ra:J160281d¡¢ÒƳý²åÈëµÄÔ´Îļþ£»51TestingÈí¼þ²âÊÔÍø m:p8HcwIc.X~d m
e¡¢¸ü»»²åÈëµÄÔ´ÎļþµÄÄÚÈÝ¡£2¡¢Á´½ÓÎļþ51TestingÈí¼þ²âÊÔÍøtF0@uzsx
²âÊÔ·½·¨£º
bvC(a%g9t$x160281a¡¢²åÈëÁ´½ÓÎļþ£»51TestingÈí¼þ²âÊÔÍø0MmKh#I&_Op|E1Qp
b¡¢ÔÚÎĵµÖÐÁ´½ÓÎĵµ±¾Éí£»51TestingÈí¼þ²âÊÔÍøa_h2v#Sp1i
c¡¢ÒƳý²åÈëµÄÔ´Îļþ£º
md.vCt'a` R:g)Jc160281d¡¢¸ü»»²åÈëµÄÔ´ÎļþµÄÄÚÈÝ¡£51TestingÈí¼þ²âÊÔÍø eQ8zq9v3¡¢²åÈë¶ÔÏó
H/EE]-|L,\"O160281Òª²âÊÔµÄÄÚÈÝ£º
N&zma8~5A160281a¡¢²åÈë³ÌÐòÔÊÐíµÄ¶ÔÏó¡¢ÈçÔÚwordÖвåÈëexcel¹¤×÷±í£»
`!`+b T*V:b6lf/g160281
S3X+P5HiKp;NmV160281b¡¢ÐÞ¸ÄËù²åÈë¶ÔÏóµÄÄÚÈÝ¡£²åÈëµÄ¶ÔÏóÈÔÄÜÕýÈ·ÏÔʾ£»51TestingÈí¼þ²âÊÔÍø2B+^/t/I/k4[K
c¡¢Ð¶ÔØÉú³É²åÈë¶ÔÏóµÄ³ÌÐò¡¢ÈçÔÚwordÖвåÈëexcel¹¤×÷±íºóжÔØexcel¡¢¹¤×÷±íÈÔÕý³£Ê¹Óᣱ༲Ù×÷
u rM*SYh Z160281±à¼²Ù×÷°üÀ¨¼ôÇС¢¸´ÖÆ¡¢Õ³Ìù²Ù×÷¡£
_ @ K/_wlZ(d(nbg160281²âÊÔ¼ôÇвÙ×÷µÄ·½·¨
+ou@h)s0a;b z160281a¡¢¶ÔÎı¾¡¢Îı¾¿ò¡¢Í¼ÎÄ¿ò½øÐмôÇУ»
t C8h+rEs7k2m3PF2l160281b¡¢¼ôÇÐͼÏñ£»51TestingÈí¼þ²âÊÔÍøI3` gd4l'y6p
c¡¢Îı¾Í¼Ïñ»ìºÏ¼ôÇС£51TestingÈí¼þ²âÊÔÍøj;` X$o {K+oQ6P¸´ÖƲÙ×÷·½·¨Óë¼ôÇÐÀàËÆ¡£
NrRuSaJ160281²âÊÔʱ£¬Ö÷ÒªÊǶÔÕ³Ìù²Ù×÷µÄ²âÊÔ·½·¨ÊÇ£º
,}Na+Z _bM160281a¡¢Õ³Ìù¼ôÇеÄÎı¾¡¢Îı¾¿ò¼°Í¼ÎÄ¿ò£»51TestingÈí¼þ²âÊÔÍøX;c`qt"Eg5s
a/["c(`7LlwHg3P160281
b¡¢Õ³ÌùËù¼ôÇеÄͼÏñ£»51TestingÈí¼þ²âÊÔÍø(XtW"D\#]].E
c¡¢¼ôÇкó£¬ÔÚ²»Í¬µÄ³ÌÐòÖÐÕ³Ìù£»51TestingÈí¼þ²âÊÔÍø-}.[7n S2sv,G `[ O
d¡¢¶à´ÎÕ³ÌùͬһÄÚÈÝ£¬Èç¼ôÇкó£¬ÔÚ³ÌÐòÖÐÁ¬ÐøÕ³Ìù3´Î£»51TestingÈí¼þ²âÊÔÍø2I6c8N3dk
e¡¢ÀûÓÃÕ³Ìù²Ù×÷Ç¿ÖÆÊäÈë³ÌÐòËù²»ÔÊÐíÊäÈëµÄÊý¾Ý¡£Èý¡¢½çÃæ²âÊÔÓÃÀýµÄÉè¼Æ·½·¨
+`RoGmrg:e1602811¡¢´°Ìå51TestingÈí¼þ²âÊÔÍøx:k|UHyfg}*Q6M
²âÊÔ´°ÌåµÄ·½·¨£º51TestingÈí¼þ²âÊÔÍø+y%~3W;KO/g1P(Bu#E4fE
a¡¢´°Ìå´óС£¬´óСҪºÏÊÊ£¬¿Ø¼þ²¼¾ÖºÏÀí£»51TestingÈí¼þ²âÊÔÍørj bSR+gM%g
R!~A\?160281
b¡¢Òƶ¯´°Ìå¡£¿ìËÙ»òÂýËÙÒƶ¯´°Ì壬±³¾°¼°´°Ìå±¾ÉíˢбØÐëÕýÈ·£»51TestingÈí¼þ²âÊÔÍø.u0IS:J%]gIo)v
c¡¢Ëõ·Å´°Ì壬´°ÌåÉϵĿؼþÓ¦Ëæ´°ÌåµÄ´óС±ä»¯¶ø±ä»¯£»
(U9OJ0P&W&i E!b[*u160281d¡¢ÏÔʾ·Ö±æÂÊ¡£±ØÐëÔÚ²»Í¬µÄ·Ö±æÂʵÄÇé¿öϲâÊÔ³ÌÐòµÄÏÔʾÊÇ·ñÕý³£¡£½øÐвâÊÔʱ»¹Òª×¢Òâ״̬À¸ÊÇ·ñÏÔʾÕýÈ·£¬¹¤¾ßÀ¸µÄͼ±êÖ´ÐвÙ×÷ÊÇ·ñÓÐЧ£¬ÊÇ·ñÓë²Ëµ¥ÀÁÖÐͼ±êÏÔʾһÖ£»´íÎóÐÅÏ¢ÄÚÈÝÊÇ·ñÕýÈ·¡¢ÎÞ´í±ð×ÖÇÒÃ÷È·µÈµÈ¡£
Sh;d"?crG1602812¡¢¿Ø¼þ51TestingÈí¼þ²âÊÔÍø?{KLvX%`g2N
²âÊÔ·½·¨£º51TestingÈí¼þ²âÊÔÍøg'UW+wa R
a¡¢´°Ìå»ò¿Ø¼þµÄ×ÖÌåºÍ´óСҪһÖ£»
W(cT4C'FHq160281
:Cw @ A a pPT160281b¡¢×¢ÒâÈ«½Ç¡¢°ë½Ç»ìºÏ£»51TestingÈí¼þ²âÊÔÍø\ [9Q*]Am,E!q%y
c¡¢ÎÞÖÐÓ¢ÎÄ»ìºÏ¡£ËÄ¡¢²Ëµ¥51TestingÈí¼þ²âÊÔÍø-["]C]'[
½øÐвâÊÔʱҪעÒ⣺
@(H@*iU7u,w4e160281a¡¢Ñ¡Ôñ²Ëµ¥ÊÇ·ñ¿ÉÒÔÕý³£¹¤×÷¡¢²¢Óëʵ¼ÊÖ´ÐÐÄÚÈÝÒ»Ö£»
0\,j] ~BO_"}@ `160281b¡¢ÊÇ·ñÓдí±ð×Ö£»
D)?U?m*`d160281c¡¢¿ì½Ý¼üÊÇ·ñÖظ´£»
uD Y9O:g$\7l160281d¡¢ÈȼüÊÇ·ñÖظ´£»51TestingÈí¼þ²âÊÔÍøv?9@:c%?a
e¡¢¿ì½Ý¼üÓëÈȼü²Ù×÷ÊÇ·ñÓÐЧ£»51TestingÈí¼þ²âÊÔÍø7X[6QG"t0siD)Nw
f¡¢ÊÇ·ñ´æÔÚÖÐÓ¢ÎÄ»ìºÏ£»
Uv#d\"y P,E0W ]160281g¡¢²Ëµ¥ÒªÓëÓï¾³Ïà¹Ø¡¢Èç¡¢²»Í¬È¨ÏÞµÄÓû§µÇ½һ¸öÓ¦ÓóÌÐò¡¢²»Í¬¼¶±ðµÄÓû§¿ÉÒÔ¿´µ½²»Í¬¼¶±ðµÄ²Ëµ¥²¢Ê¹Óò»Í¬¼¶±ðµÄ¹¦ÄÜ£»51TestingÈí¼þ²âÊÔÍøO.j6uYO
h¡¢Êó±êÓÒ¼ü¿ì½Ý²Ëµ¥¡£51TestingÈí¼þ²âÊÔÍø6j"BE'mwU eFMÌØÊâÊôÐÔ51TestingÈí¼þ²âÊÔÍø&TyoF k
1¡¢°²×°½çÃæÓ¦Óй«Ë¾½éÉÜ»ò²úÆ·½éÉÜ¡¢Óй«Ë¾µÄͼ±ê£»
T*]q:ccih n1602812¡¢Ö÷½çÃæ¼°´ó¶àÊý½çÃæ×îºÃÓй«Ë¾Í¼±ê£»
z3aR.]m U#jR,u1602813¡¢Ñ¡Ôñ¡°°ïÖú¡±->¡°¹ØÓÚ¡±ÃüÁî¡¢Ó¦¿´¼ûÏà¹Ø°æȨºÍ²úÆ·ÐÅÏ¢¡£
ÎÒµÄÀ¸Ä¿
±êÌâËÑË÷
ÎҵĴ浵
Êý¾Ýͳ¼Æ
- ·ÃÎÊÁ¿: 3371
- ÈÕÖ¾Êý: 7
- ½¨Á¢Ê±¼ä: 2009-01-12
- ¸üÐÂʱ¼ä: 2011-06-24