锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久国产高清一区二区三区,久久综合给合久久国产免费,国产精品久久久久久久午夜片http://www.shnenglu.com/colys/category/3752.htmlLIFE AS CODEzh-cnSat, 24 May 2008 11:33:23 GMTSat, 24 May 2008 11:33:23 GMT60鎶婂涓枃浠跺啓鍏ュ埌涓涓枃浠朵腑鍘誨茍鑳藉垎瑙?/title><link>http://www.shnenglu.com/colys/articles/33750.html</link><dc:creator>colys</dc:creator><author>colys</author><pubDate>Mon, 08 Oct 2007 03:50:00 GMT</pubDate><guid>http://www.shnenglu.com/colys/articles/33750.html</guid><wfw:comment>http://www.shnenglu.com/colys/comments/33750.html</wfw:comment><comments>http://www.shnenglu.com/colys/articles/33750.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/colys/comments/commentRss/33750.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/colys/services/trackbacks/33750.html</trackback:ping><description><![CDATA[<p><font size="3">瀵逛簬涓涓枃浠剁殑璇誨啓錛屽叾瀹炲緢綆鍗曪紝灝辨槸鐢?font face="Times New Roman">FileStream</font>榪涜<font face="Times New Roman">Read</font>鎴栬?font face="Times New Roman">Write</font>灝辮浜嗐備絾鏄浣曟妸澶氫釜鏂囦歡鍐欏叆鍒板悓涓涓枃浠訛紝涔嬪悗瑕佽兘鎶婅繖涓枃浠惰繘琛岃繕鍘熸垚澶氫釜鏂囦歡銆傞偅涔堝厜闈?font face="Times New Roman">FileStream</font>鐨?font face="Times New Roman">Read</font>鍜?font face="Times New Roman">Write</font>鏂規(guī)硶鏄笉澶熺殑錛岄鍏堜綘闇瑕佽嚜琛屽緩绔嬫枃浠剁儲寮曪紝鏉ユ爣鏄庢瘡涓枃浠跺湪褰撳墠鏂囦歡鐨勪綅緗?/font></p> <p><font face="Times new roman" size="3"> </font></p> <p><font size="3">閭d箞鏈榪戜綔浜嗕竴涓畝鍗曠殑<font face="Times New Roman">DEMO</font>錛屽叾涓被鐨勯儴鍒嗕唬鐮佸涓嬶細</font></p> <p>//------------------------------- Compose Files ----------------------------------</p> <p>//--------------------------------------------------------------------------------</p> <p>//---File:clsComposeFiles.cs</p> <p>//---Description:This file is to show how-to compose multi-files into one file </p> <p>//               and decompose one file to multi-files.</p> <p>//---Author:Knight</p> <p>//---Date:May.16, 2006</p> <p>//--------------------------------------------------------------------------------</p> <p>//------------------------------{ Compose Files }---------------------------------</p> <p> </p> <p>namespace ComposeFiles</p> <p>{</p> <p>    using System;</p> <p>    using System.IO;</p> <p>    using System.Collections;</p> <p>    using System.Text;</p> <p> </p> <p>    /// <summary></p> <p>    /// Summary description for clsComposeFiles.</p> <p>    /// </summary></p> <p>    public class clsComposeFiles</p> <p>    {</p> <p>        private ArrayList arrFiles = new ArrayList();</p> <p> </p> <p>        public clsComposeFiles()</p> <p>        {</p> <p>            //</p> <p>            // TODO: Add constructor logic here</p> <p>            //</p> <p>        }</p> <p> </p> <p>        /// <summary></p> <p>        /// Add a file to be composed</p> <p>        /// </summary></p> <p>        /// <param name="sFileName"></param></p> <p>        public void AddFile( string sFileName )</p> <p>        {</p> <p>            arrFiles.Add( sFileName );</p> <p>        }</p> <p> </p> <p>        /// <summary></p> <p>        /// Compose files to the specific file</p> <p>        /// </summary></p> <p>        /// <param name="sFileName"></param></p> <p>        /// <returns></returns></p> <p>        public bool ComposeFiles( string sFileName )</p> <p>        {</p> <p>            if( arrFiles.Count == 0 ) return false;</p> <p>            </p> <p>            FileInfo fi = new FileInfo( sFileName );</p> <p>            // Open file to write</p> <p>            FileStream fsWriter = null;</p> <p>            try</p> <p>            {</p> <p>                if( !fi.Exists )</p> <p>                {</p> <p>                    fsWriter = new FileStream( </p> <p>                        sFileName, </p> <p>                        FileMode.CreateNew, </p> <p>                        FileAccess.ReadWrite,</p> <p>                        FileShare.None );</p> <p>                }</p> <p>                else</p> <p>                    fsWriter = new FileStream( </p> <p>                        sFileName, </p> <p>                        FileMode.Truncate, </p> <p>                        FileAccess.ReadWrite,</p> <p>                        FileShare.None );</p> <p>            }</p> <p>            catch(Exception err)</p> <p>            {</p> <p>                System.Diagnostics.Debug.WriteLine( err.Message );</p> <p>                return false;</p> <p>            }</p> <p>            </p> <p>            byte[] bBuffer = null;</p> <p>            // Write files count</p> <p>            bBuffer = FileIndex.LongToBytes( arrFiles.Count );</p> <p>            fsWriter.Write( bBuffer, 0, 8 );</p> <p> </p> <p>            const long INDEX_START_POS = 8L;</p> <p>            // Init files index</p> <p>            FileIndex FI = new FileIndex();</p> <p>            for( int i = 0; i < arrFiles.Count; i++ )</p> <p>                fsWriter.Write( FileIndex.ConvertToBytes( ref FI ), 0, 32 );</p> <p> </p> <p>            long FILE_START_POS = INDEX_START_POS + 32 * arrFiles.Count;</p> <p>            long lCurFileStartPos = FILE_START_POS;</p> <p> </p> <p>            // Write every file</p> <p>            for( int i = 0; i < arrFiles.Count; i++ )</p> <p>            {</p> <p>                WriteFile( arrFiles[i].ToString(),</p> <p>                    ref lCurFileStartPos,</p> <p>                    INDEX_START_POS,</p> <p>                    fsWriter,</p> <p>                    i );</p> <p>            }</p> <p> </p> <p>            // Close stream</p> <p>            fsWriter.Close();</p> <p>            return true;</p> <p>        }</p> <p> </p> <p>        /// <summary></p> <p>        /// Write file name and data into composed file</p> <p>        /// </summary></p> <p>        /// <param name="sFileName"></param></p> <p>        /// <param name="FileStartPos"></param></p> <p>        /// <param name="IndexStartPos"></param></p> <p>        /// <param name="fsWriter"></param></p> <p>        /// <param name="Index"></param></p> <p>        private void WriteFile( </p> <p>            string sFileName, </p> <p>            ref long FileStartPos,</p> <p>            long IndexStartPos,</p> <p>            FileStream fsWriter,</p> <p>            int Index )</p> <p>        {</p> <p>            FileInfo fi = new FileInfo( sFileName );</p> <p>            if( !fi.Exists ) return;</p> <p> </p> <p>            FileStream fsReader = null;</p> <p>            try</p> <p>            {</p> <p>                fsReader = new FileStream( </p> <p>                    sFileName, FileMode.Open, </p> <p>                    FileAccess.Read );</p> <p>            }</p> <p>            catch{ return;}</p> <p> </p> <p>            // Get file name</p> <p>            byte[] bFileName = Encoding.Unicode.GetBytes( fi.Name );</p> <p>            // Write file name</p> <p>            fsWriter.Write( bFileName, 0, bFileName.Length );</p> <p> </p> <p>            const int BUFFER_LENGTH = 1024;</p> <p>            byte[] bBuffer = new byte[BUFFER_LENGTH];</p> <p>            int nRealRead = 0;</p> <p>            // Write data using</p> <p>            do</p> <p>            {</p> <p>                // Read data from file</p> <p>                nRealRead = fsReader.Read( bBuffer, 0, </p> <p>                    BUFFER_LENGTH );</p> <p>                // Write data </p> <p>                fsWriter.Write( bBuffer, 0, nRealRead );</p> <p>            }while( nRealRead > 0 );</p> <p>            // Close file reader</p> <p>            fsReader.Close();</p> <p> </p> <p>            FileIndex FINew = new FileIndex();</p> <p>            FINew.NameStartPos = FileStartPos;</p> <p>            FINew.NameLength = bFileName.Length;</p> <p>            FINew.FileStartPos = FileStartPos + bFileName.Length;</p> <p>            FINew.FileLength = fi.Length;</p> <p> </p> <p>            // Go back to file index position</p> <p>            fsWriter.Seek( IndexStartPos + Index * 32, SeekOrigin.Begin );</p> <p> </p> <p>            // Write file index info</p> <p>            fsWriter.Write( FileIndex.ConvertToBytes( ref FINew ), 0, 32 );</p> <p> </p> <p>            // Go back to file end</p> <p>            fsWriter.Seek( 0, SeekOrigin.End );</p> <p> </p> <p>            // Set file current position</p> <p>            FileStartPos += bFileName.Length + fi.Length;</p> <p>        }</p> <p> </p> <p>        /// <summary></p> <p>        /// Decompose file to multi files into specific directory</p> <p>        /// </summary></p> <p>        /// <param name="sFileName"></param></p> <p>        /// <param name="sDestDir"></param></p> <p>        /// <returns></returns></p> <p>        public bool DecomposeFile( string sFileName, string sDestDir )</p> <p>        {</p> <p>            FileInfo fi = new FileInfo( sFileName );</p> <p>            if( !fi.Exists ) return false;</p> <p> </p> <p>            FileStream fsReader = null;</p> <p>            try</p> <p>            {</p> <p>                fsReader = new FileStream( </p> <p>                    sFileName, FileMode.Open, </p> <p>                    FileAccess.Read );</p> <p>            }</p> <p>            catch{ return false;}</p> <p>            </p> <p>            // Read file count</p> <p>            byte[] bFileCount = new byte[8];</p> <p>            int nRealRead = 0;</p> <p>            nRealRead = fsReader.Read( bFileCount, 0, 8 );</p> <p>            if( nRealRead != 8 )</p> <p>            {</p> <p>                fsReader.Close();</p> <p>                return false;</p> <p>            }</p> <p> </p> <p>            long lFileCount = FileIndex.BytesToLong( bFileCount );</p> <p>            if( lFileCount > 0 )</p> <p>            {</p> <p>                //Init file index array</p> <p>                FileIndex[] fiArray = new FileIndex[lFileCount];</p> <p>                byte[] bFileIndex = new byte[32];</p> <p>                for( int i = 0; i < lFileCount; i++ )</p> <p>                {</p> <p>                    fsReader.Read( bFileIndex, 0, 32 );</p> <p>                    fiArray[i] = FileIndex.ConvertToFileIndex( bFileIndex );</p> <p>                }</p> <p> </p> <p>                if( sDestDir[ sDestDir.Length - 1] != '\\' )</p> <p>                    sDestDir += "\\";</p> <p>                // Save every file into current directory</p> <p>                for( int i = 0; i < fiArray.Length; i++ )</p> <p>                {</p> <p>                    SaveFile( fsReader,</p> <p>                        ref fiArray[i],</p> <p>                        sDestDir );</p> <p>                }</p> <p>            }</p> <p> </p> <p>            // Close file reader</p> <p>            fsReader.Close();</p> <p>            return true;</p> <p>        }</p> <p> </p> <p>        /// <summary></p> <p>        /// Save every file into directory</p> <p>        /// </summary></p> <p>        /// <param name="fsReader"></param></p> <p>        /// <param name="FI"></param></p> <p>        /// <param name="sDestDir"></param></p> <p>        private void SaveFile( </p> <p>            FileStream fsReader,</p> <p>            ref FileIndex FI,</p> <p>            string sDestDir )</p> <p>        {</p> <p>            // Read file name</p> <p>            byte[] bFileName = new byte[ FI.NameLength ];</p> <p>            int nRealRead = fsReader.Read( bFileName, 0, bFileName.Length );</p> <p>            if( nRealRead != bFileName.Length ) return;</p> <p>            string sFileName = Encoding.Unicode.GetString( bFileName );</p> <p>            sFileName = sDestDir + sFileName;</p> <p>            FileInfo fi = new FileInfo( sFileName );</p> <p>            // Open file to write</p> <p>            FileStream fsWriter = null;</p> <p>            try</p> <p>            {</p> <p>                if( !fi.Exists )</p> <p>                {</p> <p>                    fsWriter = new FileStream( </p> <p>                        sFileName, </p> <p>                        FileMode.CreateNew, </p> <p>                        FileAccess.ReadWrite,</p> <p>                        FileShare.None );</p> <p>                }</p> <p>                else</p> <p>                    fsWriter = new FileStream( </p> <p>                        sFileName, </p> <p>                        FileMode.Truncate, </p> <p>                        FileAccess.ReadWrite,</p> <p>                        FileShare.None );</p> <p>            }</p> <p>            catch(Exception err){</p> <p>                System.Diagnostics.Debug.WriteLine( err.Message );</p> <p>                return;</p> <p>            }</p> <p>        </p> <p>            // Init buffer  </p> <p>            const int BUFFER_LENGTH = 1024;</p> <p>            byte[] bBuffer = new byte[BUFFER_LENGTH];</p> <p>            long lLeft = FI.FileLength;</p> <p> </p> <p>            // Copy file </p> <p>            do</p> <p>            {</p> <p>                if( lLeft > BUFFER_LENGTH )</p> <p>                {</p> <p>                    fsReader.Read( bBuffer, 0, BUFFER_LENGTH );</p> <p>                    fsWriter.Write( bBuffer, 0, BUFFER_LENGTH );</p> <p> </p> <p>                    lLeft -= BUFFER_LENGTH;</p> <p>                }</p> <p>                else</p> <p>                {</p> <p>                    nRealRead = fsReader.Read( bBuffer, 0, (int)lLeft );</p> <p>                    fsWriter.Write( bBuffer, 0, nRealRead );</p> <p> </p> <p>                    lLeft -= nRealRead;</p> <p>                }</p> <p>            }</p> <p>            while( lLeft > 0 );</p> <p> </p> <p>            // close file writer</p> <p>            fsWriter.Close();</p> <p>        }</p> <p>    }</p> <p> </p> <p>    /// <summary></p> <p>    /// File index data structure</p> <p>    /// </summary></p> <p>    public struct FileIndex</p> <p>    {</p> <p>        public long NameStartPos;</p> <p>        public long NameLength;</p> <p>        public long FileStartPos;</p> <p>        public long FileLength;</p> <p> </p> <p>        public static byte[] ConvertToBytes( ref FileIndex FI  )</p> <p>        {</p> <p>            byte[] bData = new byte[32];</p> <p> </p> <p>            Array.Copy( LongToBytes( FI.NameStartPos ), 0, bData, 0, 8 );</p> <p>            Array.Copy( LongToBytes( FI.NameLength ), 0, bData, 8, 8 );</p> <p>            Array.Copy( LongToBytes( FI.FileStartPos ), 0, bData, 16, 8 );</p> <p>            Array.Copy( LongToBytes( FI.FileLength ), 0, bData, 24, 8 );</p> <p> </p> <p>            return bData;</p> <p>        }</p> <p> </p> <p>        public static byte[] LongToBytes( long lValue )</p> <p>        {</p> <p>            byte[] bData = new byte[8];</p> <p>    </p> <p>            bData[0] = (byte)( ( lValue >> 56 ) & 0xFF);</p> <p>            bData[1] = (byte)( ( lValue >> 48 ) & 0xFF);</p> <p>            bData[2] = (byte)( ( lValue >> 40 ) & 0xFF);</p> <p>            bData[3] = (byte)( ( lValue >> 32 ) & 0xFF);</p> <p>            bData[4] = (byte)( ( lValue >> 24 ) & 0xFF);</p> <p>            bData[5] = (byte)( ( lValue >> 16 ) & 0xFF);</p> <p>            bData[6] = (byte)( ( lValue >> 8 ) & 0xFF);</p> <p>            bData[7] = (byte)(lValue & 0xFF);</p> <p>            return bData;</p> <p>        }</p> <p> </p> <p>        public static FileIndex ConvertToFileIndex( byte[] bData )</p> <p>        {</p> <p>            if( bData == null || bData.Length != 32 ) </p> <p>                throw new Exception( "Invalid parameters!" );</p> <p> </p> <p>            FileIndex FI = new FileIndex();</p> <p>            byte[] bBuffer = new byte[8];</p> <p>            Array.Copy( bData, 0, bBuffer, 0, 8 );</p> <p>            FI.NameStartPos = BytesToLong( bBuffer );</p> <p>            Array.Copy( bData, 8, bBuffer, 0, 8 );</p> <p>            FI.NameLength = BytesToLong( bBuffer );</p> <p>            Array.Copy( bData, 16, bBuffer, 0, 8 );</p> <p>            FI.FileStartPos = BytesToLong( bBuffer );</p> <p>            Array.Copy( bData, 24, bBuffer, 0, 8 );</p> <p>            FI.FileLength = BytesToLong( bBuffer );</p> <p>            return FI;</p> <p>        }</p> <p> </p> <p>        public static long BytesToLong( byte[] bData )</p> <p>        {</p> <p>            if( bData == null || bData.Length != 8 )</p> <p>                throw new Exception( "Invalid parameters!" );</p> <p> </p> <p>            long lngValue = 0;</p> <p>            lngValue += bData[0];</p> <p>            lngValue = ( lngValue << 8 );</p> <p>            lngValue += bData[1];</p> <p>            lngValue = ( lngValue << 8 );</p> <p>            lngValue += bData[2];</p> <p>            lngValue = ( lngValue << 8 );</p> <p>            lngValue += bData[3];</p> <p>            lngValue = ( lngValue << 8 );</p> <p>            lngValue += bData[4];</p> <p>            lngValue = ( lngValue << 8 );</p> <p>            lngValue += bData[5];</p> <p>            lngValue = ( lngValue << 8 );</p> <p>            lngValue += bData[6];</p> <p>            lngValue = ( lngValue << 8 );</p> <p>            lngValue += bData[7];</p> <p>            return lngValue;</p> <p>        }</p> <p>    }</p> <p>}</p> <p><font face="Times new roman" size="3"> </font></p> <p><font size="3">鍏朵腑綾葷殑鎿嶄綔鍙傜湅<font face="Times New Roman">clsComposeFiles</font>榪欎釜綾伙紝鑰屾枃浠剁儲寮曠粨鏋勫弬鐪?font face="Times New Roman">FileIndex</font>榪欎釜<font face="Times New Roman">Structure</font>銆?/font></p> <p><font face="Times new roman" size="3"> </font></p> <p><font size="3">涔嬪悗鐨勮皟鐢ㄥ氨寰堢畝鍗曪紝渚嬪錛?/font></p> <p><font size="3">鍚堟垚鏂囦歡錛?/font></p> <p>    clsComposeFiles myComposeFiles = new clsComposeFiles();</p> <p>    myComposeFiles.AddFile( @"D:\Ship.exe" );</p> <p>    myComposeFiles.AddFile( @"D:\LoginPage.JPG" );</p> <p>myComposeFiles.ComposeFiles( @"D:\Ship.dat" );</p> <p><font face="Times new roman" size="3"> </font></p> <p><font size="3">鍒嗚В鏂囦歡錛?/font></p> <p>    clsComposeFiles myComposeFiles = new clsComposeFiles();</p>     myComposeFiles.DecomposeFile( @"D:\Ship.dat", @"E:\" ); <br><img src ="http://www.shnenglu.com/colys/aggbug/33750.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/colys/" target="_blank">colys</a> 2007-10-08 11:50 <a href="http://www.shnenglu.com/colys/articles/33750.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍒╃敤瀹㈡埛绔紦瀛樺緗戠珯榪涜浼樺寲[杞琞http://www.shnenglu.com/colys/articles/32840.htmlcolyscolysTue, 25 Sep 2007 05:23:00 GMThttp://www.shnenglu.com/colys/articles/32840.htmlhttp://www.shnenglu.com/colys/comments/32840.htmlhttp://www.shnenglu.com/colys/articles/32840.html#Feedback0http://www.shnenglu.com/colys/comments/commentRss/32840.htmlhttp://www.shnenglu.com/colys/services/trackbacks/32840.html浠嬬粛         浣犵殑緗戠珯鍦ㄥ茍鍙戣闂緢澶у茍涓旀棤娉曟壙鍙楀帇鍔涚殑鎯呭喌涓?浣犱細閫夋嫨濡備綍浼樺寲? 
        寰堝浜洪鍏堜細鎯充粠鏈嶅姟鍣ㄧ紦瀛樻柟闈㈢潃鎵嬪紼嬪簭榪涜浼樺寲,璁稿涓嶅悓鐨勬湇鍔″櫒緙撳瓨 鏂瑰紡閮芥湁浠栦滑鑷繁鐨勭壒鐐?鍍忔垜鏇劇粡鍙備笌鐨勪竴浜涢」鐩腑,鏍規(guī)嵁緙撳瓨鐨勫懡涓巼涓嶅悓浣跨敤榪?Com+/Enterprise Libiary Caching/Windows鏈嶅姟,闈欐佹枃浠剁瓑鏂瑰紡鐨勬湇鍔″櫒绔紦瀛樺拰 HTTP Compression鎶 鏈?浣嗗鎴風(fēng)緙撳瓨寰寰鍗磋浜轟滑蹇界暐浜?鍗充嬌鏈嶅姟鍣ㄧ殑緙撳瓨璁╀綘鐨勯〉闈㈣闂搗鏉ラ潪甯稿湴蹇?浣嗗ス渚濈劧闇瑕佷緷璧栨祻瑙堝櫒涓嬭澆騫惰緭鍑?鑰屽綋浣犲姞鍏ュ鎴風(fēng)緙撳瓨鏃?浼氱粰浣? 甯︽潵闈炲父澶氱殑濂藉.鍥犱負濂瑰彲浠ュ绔欑偣涓闂渶棰戠箒鐨勯〉榪涜緙撳瓨鍏呭垎鍦版彁楂?Web 鏈嶅姟鍣ㄧ殑鍚炲悙閲忥紙閫氬父浠ユ瘡縐掔殑璇鋒眰鏁拌綆楋級浠ユ彁鍗囧簲鐢ㄧ▼搴忔ц兘鍜屽彲浼哥緝鎬с?nbsp;
        涓涓湪綰胯喘鐗╄皟鏌ユ樉紺猴紝澶у鏁頒漢鎰挎剰鍘誨晢搴楁帓闃燂紝浣嗗湪鍦ㄧ嚎璐墿鏃跺嵈涓嶆効鎰忕瓑寰呫俉ebsense璋冩煡鍏徃縐板杈?0%鐨勪笂緗戣呰〃紺轟笉鎰挎剰鍦ㄩ〉闈㈣鍙栦笂瓚呰繃10縐掗挓銆傝秴榪?0%鐨勪漢浼氬洜涓轟腑閫旈熷害榪囨參鑰屽彇娑堝綋鍓嶇殑璁㈠崟銆?

      鍩虹鐭ヨ瘑

        1) 浠涔堟槸”Last-Modified”?  

        鍦ㄦ祻瑙堝櫒絎竴嬈¤姹傛煇涓涓猆RL鏃訛紝鏈嶅姟鍣ㄧ鐨勮繑鍥炵姸鎬佷細鏄?00錛屽唴瀹規(guī)槸浣犺姹傜殑璧勬簮錛屽悓鏃舵湁涓涓狶ast-Modified鐨勫睘鎬ф爣璁版鏂囦歡鍦ㄦ湇鍔℃湡绔渶鍚庤淇敼鐨勬椂闂達紝鏍煎紡綾諱技榪欐牱錛?nbsp;

        Last-Modified: Fri, 12 May 2006 18:53:33 GMT 

        瀹㈡埛绔浜屾璇鋒眰姝RL鏃訛紝鏍規(guī)嵁 HTTP 鍗忚鐨勮瀹氾紝嫻忚鍣ㄤ細鍚戞湇鍔″櫒浼犻?If-Modified-Since 鎶ュご錛岃闂鏃墮棿涔嬪悗鏂囦歡鏄惁鏈夎淇敼榪囷細 

        If-Modified-Since: Fri, 12 May 2006 18:53:33 GMT 

        濡傛灉鏈嶅姟鍣ㄧ鐨勮祫婧愭病鏈夊彉鍖栵紝鍒欒嚜鍔ㄨ繑鍥?HTTP 304 錛圢ot Changed.錛夌姸鎬佺爜錛屽唴瀹逛負絀猴紝榪欐牱灝辮妭鐪佷簡浼犺緭鏁版嵁閲忋傚綋鏈嶅姟鍣ㄧ浠g爜鍙戠敓鏀瑰彉鎴栬呴噸鍚湇鍔″櫒鏃訛紝鍒欓噸鏂板彂鍑鴻祫婧愶紝榪斿洖鍜岀涓嬈¤姹傛椂綾諱技銆? 浠庤屼繚璇佷笉鍚戝鎴風(fēng)閲嶅鍙戝嚭璧勬簮錛屼篃淇濊瘉褰撴湇鍔″櫒鏈夊彉鍖栨椂錛屽鎴風(fēng)鑳藉寰楀埌鏈鏂扮殑璧勬簮銆?nbsp;

        2) 浠涔堟槸”Etag”? 

        HTTP 鍗忚瑙勬牸璇存槑瀹氫箟ETag涓?#8220;琚姹傚彉閲忕殑瀹炰綋鍊?#8221; 錛?a target="_blank">鍙傝 鈥斺?绔犺妭 14.19錛夈?鍙︿竴縐嶈娉曟槸錛孍Tag鏄竴涓彲浠ヤ笌Web璧勬簮鍏寵仈鐨勮鍙鳳紙token錛夈傚吀鍨嬬殑Web璧勬簮鍙互涓涓猈eb欏碉紝浣嗕篃鍙兘鏄疛SON鎴朮ML鏂囨。銆傛湇鍔″櫒鍗曠嫭璐熻矗鍒ゆ柇璁板彿鏄粈涔堝強鍏跺惈涔夛紝騫跺湪HTTP鍝嶅簲澶翠腑灝嗗叾浼犻佸埌瀹㈡埛绔紝浠ヤ笅鏄湇鍔″櫒绔繑鍥炵殑鏍煎紡錛?nbsp;

        ETag: "50b1c1d4f775c61:df3" 

        瀹㈡埛绔殑鏌ヨ鏇存柊鏍煎紡鏄繖鏍風(fēng)殑錛?nbsp;

        If-None-Match: W/"50b1c1d4f775c61:df3" 

        濡傛灉ETag娌℃敼鍙橈紝鍒欒繑鍥炵姸鎬?04鐒跺悗涓嶈繑鍥烇紝榪欎篃鍜孡ast-Modified涓鏍楓傛湰浜烘祴璇旹tag涓昏鍦ㄦ柇鐐逛笅杞芥椂姣旇緝鏈夌敤銆?br>         

      Last-Modified鍜孍tags濡備綍甯姪鎻愰珮鎬ц兘?

        鑱槑鐨勫紑鍙戣呬細鎶奓ast-Modified 鍜孍Tags璇鋒眰鐨刪ttp鎶ュご涓璧蜂嬌鐢紝榪欐牱鍙埄鐢ㄥ鎴風(fēng)錛堜緥濡傛祻瑙堝櫒錛夌殑緙撳瓨銆傚洜涓烘湇鍔″櫒棣栧厛浜х敓 Last-Modified/Etag鏍囪錛屾湇鍔″櫒鍙湪紼嶅悗浣跨敤瀹冩潵鍒ゆ柇欏甸潰鏄惁宸茬粡琚慨鏀廣傛湰璐ㄤ笂錛屽鎴風(fēng)閫氳繃灝嗚璁板彿浼犲洖鏈嶅姟鍣ㄨ姹傛湇鍔″櫒楠岃瘉鍏訛紙瀹? 鎴風(fēng)錛夌紦瀛樸?nbsp;
        榪囩▼濡備笅:
                1. 瀹㈡埛绔姹備竴涓〉闈紙A錛夈?nbsp;
                2. 鏈嶅姟鍣ㄨ繑鍥為〉闈錛屽茍鍦ㄧ粰A鍔犱笂涓涓狶ast-Modified/ETag銆?nbsp;
                3. 瀹㈡埛绔睍鐜拌欏甸潰錛屽茍灝嗛〉闈㈣繛鍚孡ast-Modified/ETag涓璧風(fēng)紦瀛樸?nbsp;
                4. 瀹㈡埛鍐嶆璇鋒眰欏甸潰A錛屽茍灝嗕笂嬈¤姹傛椂鏈嶅姟鍣ㄨ繑鍥炵殑Last-Modified/ETag涓璧蜂紶閫掔粰鏈嶅姟鍣ㄣ?nbsp;
                5. 鏈嶅姟鍣ㄦ鏌ヨLast-Modified鎴朎Tag錛屽茍鍒ゆ柇鍑鴻欏甸潰鑷笂嬈″鎴風(fēng)璇鋒眰涔嬪悗榪樻湭琚慨鏀癸紝鐩存帴榪斿洖鍝嶅簲304鍜屼竴涓┖鐨勫搷搴斾綋銆?br>

      紺轟緥浠g爜

        涓嬮潰鐨勪緥瀛愭弿榪板浣曚嬌鐢ㄦ湇鍔″櫒绔唬鐮佸幓鎿嶄綔瀹㈡埛绔紦瀛? 
       
  //榛樿緙撳瓨鐨勭鏁?/span>
  int secondsTime = 100;
   
  
//鍒ゆ柇鏈鍚庝慨鏀規(guī)椂闂存槸鍚﹀湪瑕佹眰鐨勬椂闂村唴
  
//濡傛灉鏈嶅姟鍣ㄧ鐨勬枃浠舵病鏈夎淇敼榪囷紝鍒欒繑鍥炵姸鎬佹槸304錛屽唴瀹逛負絀猴紝榪欐牱灝辮妭鐪佷簡浼犺緭鏁版嵁閲忋傚鏋滄湇鍔″櫒绔殑鏂囦歡琚慨鏀硅繃錛屽垯榪斿洖鍜岀涓嬈¤姹傛椂綾諱技銆?/span>
  if (request.Headers["If-Modified-Since"!= null && TimeSpan.FromTicks(DateTime.Now.Ticks - DateTime.Parse(request.Headers["If-Modified-Since"]).Ticks).Seconds < secondsTime)
  {
      
//嫻嬭瘯浠g爜,鍦ㄨ繖閲屼細鍙戠幇,褰撴祻瑙堝櫒榪斿洖304鐘舵佹椂,涓嬮潰鐨勬棩鏈熷茍涓嶄細杈撳嚭
      Response.Write(DateTime.Now);
 
     response.StatusCode 
= 304;
     response.Headers.Add(
"Content-Encoding""gzip");
     response.StatusDescription 
= "Not Modified";
  }
  
else
  {
     
//杈撳嚭褰撳墠鏃墮棿
     Response.Write(DateTime.Now);
 
     
//璁劇疆瀹㈡埛绔紦瀛樼姸鎬?/span>
     SetClientCaching(response, DateTime.Now);
  }
 
  
#region SetClientCaching..
  
/// <summary>
  
/// 璁劇疆瀹㈡埛绔紦瀛樼姸鎬?br>  /// </summary>
  
/// <param name="response"></param>
  
/// <param name="lastModified"></param>
  private void SetClientCaching(HttpResponse response, DateTime lastModified)
  {
     response.Cache.SetETag(lastModified.Ticks.ToString());
     response.Cache.SetLastModified(lastModified);
     
//public 浠ユ寚瀹氬搷搴旇兘鐢卞鎴風(fēng)鍜屽叡浜紙浠g悊錛夌紦瀛樿繘琛岀紦瀛樸?/span>
     response.Cache.SetCacheability(HttpCacheability.Public);
     
//鏄厑璁告枃妗e湪琚涓洪檲鏃т箣鍓嶅瓨鍦ㄧ殑鏈闀跨粷瀵規(guī)椂闂淬?/span>
銆    response.Cache.SetMaxAge(new TimeSpan(7000));
     
//灝嗙紦瀛樿繃鏈熶粠緇濆鏃墮棿璁劇疆涓哄彲璋冩椂闂?/span>
     response.Cache.SetSlidingExpiration(true);
  }
#endregion



        濡傛灉浣犵殑緙撳瓨鏄熀浜庢枃浠剁殑鏂瑰紡,濡俋ML鎴杊ttp涓殑.ashx澶勭悊,涔熷彲浠ヤ嬌鐢ㄤ笅闈㈢殑鍩轟簬鏂囦歡鏂瑰紡鐨勫鎴風(fēng)緙撳瓨: 
        
 #region SetFileCaching..
  
/// <summary>
  
/// 鍩轟簬鏂囦歡鏂瑰紡璁劇疆瀹㈡埛绔紦瀛?br>  /// </summary>
  
/// <param name="fileName"></param>
  private void SetFileCaching(HttpResponse response, string fileName)
  {
     response.AddFileDependency(fileName);
      
//鍩轟簬澶勭悊紼嬪簭鏂囦歡渚濊禆欏圭殑鏃墮棿鎴寵緗?nbsp;ETag HTTP 鏍囧ご銆?nbsp;
     response.Cache.SetETagFromFileDependencies();
     
//鍩轟簬澶勭悊紼嬪簭鏂囦歡渚濊禆欏圭殑鏃墮棿鎴寵緗?nbsp;Last-Modified HTTP 鏍囧ご銆?/span>
     response.Cache.SetLastModifiedFromFileDependencies();
     response.Cache.SetCacheability(HttpCacheability.Public);
     response.Cache.SetMaxAge(
new TimeSpan(7000));
     response.Cache.SetSlidingExpiration(
true);
 }
 
#endregion
 

        浣跨敤鍚庣殑鏁堟灉濡備笅鍥炬墍紺?


涓婂浘鎵浣跨敤鐨勫伐鍏鋒槸鍦↖E涓嬭繍琛岀殑HttpWatchPro,鍦‵irefox涓嬪彲浠ヤ嬌鐢?a target="_blank" >FireBug+YSlow榪涜嫻嬭瘯.
YSlow鏄緩绔嬪湪FireBug鍩虹涓婅繍琛岀殑涓涓皬宸ュ叿,瀹冨彲浠ュ浣犵殑緗戦〉榪涜鍒嗘瀽涓轟粈涔堢紦瀛?騫剁粰鍑鴻瘎鍒嗗拰緙撴參鐨勫師鍥?榪欎釜宸ュ叿鏉ヨ嚜Yahoo鐨勭爺鍙戝洟闃?鎵浠ヨ鍒欎篃鏄痀ahoo鍒跺畾鐨?

      緇撹

        鎴戜滑宸茬粡鐪嬩簡濡備綍浣跨敤瀹㈡埛绔紦瀛樺噺灝戝甫瀹藉拰璁$畻鐨勬柟娉?濡傚墠鎵榪?濡傛灉鑳芥 紜悎鐞嗙殑鍒╃敤鍚勭涓嶅悓鐨勭紦瀛?浠栦滑浼氱粰浣犲甫鏉ュ緢澶氱殑濂藉.鎴戝笇鏈涙湰鏂囧凡涓轟綘褰撲笅鎴栧皢鏉ュ熀浜嶹eb鐨勯」鐩彁渚涗簡綺劇椋熺伯錛屽茍姝g‘鍦板湪搴曞眰鍒╃敤Last- Modified鍜孍Tag鍝嶅簲澶村幓浼樺寲浣犵殑欏圭洰銆?nbsp;

        
        

鍙傝冭祫鏂?

301姘鎬箙閲嶅畾鍚戝疄鐜版柟寮忓強302閲嶅畾鍚?/a>

鐞嗚ВASP.NET涓庡鎴風(fēng)緙撳瓨涔婬TTP鍗忚 

濡備綍鍒╃敤瀹㈡埛绔紦瀛樺緗戠珯榪涜浼樺寲?

鍘熸枃鍦板潃錛?a title="http://www.cnblogs.com/lion.net/archive/2007/09/24/904717.html" >http://www.cnblogs.com/lion.net/archive/2007/09/24/904717.html



colys 2007-09-25 13:23 鍙戣〃璇勮
]]>
nhibernate鍏ラ棬緋誨垪: many-to-many鏄犲皠[杞琞http://www.shnenglu.com/colys/articles/32461.htmlcolyscolysWed, 19 Sep 2007 03:31:00 GMThttp://www.shnenglu.com/colys/articles/32461.htmlhttp://www.shnenglu.com/colys/comments/32461.htmlhttp://www.shnenglu.com/colys/articles/32461.html#Feedback0http://www.shnenglu.com/colys/comments/commentRss/32461.htmlhttp://www.shnenglu.com/colys/services/trackbacks/32461.html澶氬澶氬叧緋誨湪鏁版嵁搴撲篃鏄瘮杈冨父瑙佺殑錛屽畠閫氳繃涓涓腑闂磋〃灝嗕袱涓富琛ㄥ叧鑱旇搗鏉ャ?br>涓嬮潰鏉ョ湅鐪嬪瀵瑰鍏寵仈鍦╪h鐨勫疄鐜幫紝紺轟緥鏄竴涓猆ser鍜孏roup涔嬮棿鐨勫瀵瑰鍏寵仈銆?br>
鍏堟潵鐪嬬湅User綾葷殑鏄犲皠淇℃伅:
many-to-many mapping 

鍦ㄥ瀵瑰瀹氫箟涓紝瀹氫箟浜嗕腑闂磋〃涓篣serGroups錛屾琛ㄥ彧鏈変袱涓瓧孌碉細user_id鍜実roup_id錛涚敤浜庡叧鑱擴sers鍜孏roups琛ㄣ?br>
User鐨勫畾涔夛細

public class User {

   public User() {
   }

   public int UserId
   {
      get { return userId; }
      set { userId = value; }
   }

   public int Name
   {
      get { return name; }
      set { name = value; }
   }

   public IDictionary Groups
   {
      get { return groups; }
      set { groups = value; }
   }

   private int userId;
   private string name;
   private IDictionary groups = new Hashtable();

} //class User

榪欓噷鐢ㄤ竴涓暟鎹瓧鍏窱Dictionary瀵硅鏉ヤ繚瀛樼粍瀵硅薄銆?br>
鍐嶆潵鐪嬬湅Group綾葷殑鏄犲皠淇℃伅錛?br>many 

榪欓噷many-to-many鐨勫畾涔夊拰User綾繪槧灝勪俊鎭腑鐨勫樊涓嶅銆?br>
緇勭被鐨勫畾涔夛細

public class Group {

   public Group() {
   }

   public int GroupId
   {
      get { return groupId; }
      set { groupId = value; }
   }

   public int Name
   {
      get { return name; }
      set { name = value; }
   }

   public int Description
   {
      get { return description; }
      set { description = value; }
   }

   public IDictionary Users
   {
      get { return users; }
      set { users = value; }
   }

   private int groupId;
   private string name;
   private IDictionary users = new Hashtable();

} //class Group

娉ㄦ剰錛氬瀵瑰娌℃湁涓繪涔嬪垎錛屼繚瀛樻椂鐨勪袱杈歸兘瑕乻ave!

涓嬮潰緇欏嚭閮ㄥ垎嫻嬭瘯浠g爜銆?br>
public TestCreate() {
   User user1 = new User();
   user1.Name = "test1";
   User user2 = new User();
   user2.Name = "test2";

   Group group1 = new Group();
   group1.Name = "group1"; 
   Group group2 = new Group();
   group2.Name = "group2";

   user1.Groups.Add( group2, group2 );
   user2.Groups.Add( group1. group1 );
   group1.Users.Add( user2, user2 );
   group2.Users.Add( user1, user1 );

   ITransactioin trans = null;
   try {
      trans = session.BeginTransaction();

      Session.Save( user1 );
      Session.Save( user2 );
      Session.Save( group1 );
      Session.Save( group2 );

      trans.Commit();
   }
   catch ( Exception e ) {
      if ( trans != null ) trans.Rollback();
      throw e;
   }
   finally {
      session.Close();
   }
}

浠ヤ笂嫻嬭瘯浠g爜涓璼ession鐨勭浉鍏蟲搷浣滆鏌ョ湅鐩稿叧鏂囨。銆?br>
鍦ㄥ疄闄呭簲鐢ㄤ腑錛屾垜杈冨皯浣跨敤many-to-many鏄犲皠錛屽綋鐒惰繖瑕佷粠鎬ц兘鍜屽疄闄呴渶瑕佽冭檻銆?br>鎴戠殑鍋氭硶鏄竴涓猠lements鏉ュ彇寰楁墍鏈夊叧鑱旂殑identity, 鐒跺悗鍦ㄩ渶瑕佺殑鏃跺欐墠鍔犺澆瀵硅薄錛屾湁鐐圭被浼糽azy, 浣唋azy鏈変竴涓棶棰橈紝灝辨槸session蹇呴』娌℃湁琚噴鏀撅紝榪欏湪鍒嗗眰寮鍙戜腑杈冮毦鍔炲埌銆?br>
鍘熸枃:http://www.seaskyer.net/Index/Catalog44/182.html



colys 2007-09-19 11:31 鍙戣〃璇勮
]]>
鍒嗘暎鏁版嵁搴撳帇鍔?鍒嗚〃澶勭悊璁捐鎬濇兂鍜屽疄鐜?/title><link>http://www.shnenglu.com/colys/articles/32397.html</link><dc:creator>colys</dc:creator><author>colys</author><pubDate>Tue, 18 Sep 2007 01:51:00 GMT</pubDate><guid>http://www.shnenglu.com/colys/articles/32397.html</guid><wfw:comment>http://www.shnenglu.com/colys/comments/32397.html</wfw:comment><comments>http://www.shnenglu.com/colys/articles/32397.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/colys/comments/commentRss/32397.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/colys/services/trackbacks/32397.html</trackback:ping><description><![CDATA[<div><strong> 涓銆佹榪?/strong> </div> <div> </div> <div>鍒嗚〃鏄釜鐩墠綆楁槸姣旇緝鐐掔殑姣旇緝嫻佽鐨勬蹇碉紝鐗瑰埆鏄湪澶ц礋杞界殑鎯呭喌涓嬶紝鍒嗚〃鏄竴涓壇濂藉垎鏁f暟鎹簱鍘嬪姏鐨勫ソ鏂規(guī)硶銆?/div> <div> </div> <div>棣栧厛瑕佷簡瑙d負浠涔堣鍒嗚〃錛屽垎琛ㄧ殑濂藉鏄粈涔堛傛垜浠厛鏉ュぇ姒備簡瑙d互涓嬩竴涓暟鎹簱鎵цSQL鐨勮繃紼嬶細</div> <div>鎺ユ敹鍒癝QL --> 鏀懼叆SQL鎵ц闃熷垪 --> 浣跨敤鍒嗘瀽鍣ㄥ垎瑙QL --> 鎸夌収鍒嗘瀽緇撴灉榪涜鏁版嵁鐨勬彁鍙栨垨鑰呬慨鏀?--> 榪斿洖澶勭悊緇撴灉</div> <div> </div> <div>褰撶劧錛岃繖涓祦紼嬪浘涓嶄竴瀹氭紜紝榪欏彧鏄垜鑷繁涓昏鎰忚瘑涓婅繖涔堟垜璁や負銆傞偅涔堣繖涓鐞嗚繃紼嬪綋涓紝鏈瀹規(guī)槗鍑虹幇闂鐨勬槸浠涔堬紵灝辨槸璇達紝濡傛灉鍓嶄竴涓猄QL娌? 鏈夋墽琛屽畬姣曠殑璇濓紝鍚庨潰鐨凷QL鏄笉浼氭墽琛岀殑錛屽洜涓轟負浜嗕繚璇佹暟鎹殑瀹屾暣鎬э紝蹇呴』瀵規(guī)暟鎹〃鏂囦歡榪涜閿佸畾錛屽寘鎷叡浜攣鍜岀嫭浜攣涓ょ閿佸畾銆傚叡浜攣鏄湪閿佸畾鐨勬湡闂達紝 鍏跺畠綰跨▼涔熷彲浠ヨ闂繖涓暟鎹枃浠訛紝浣嗘槸涓嶅厑璁鎬慨鏀規(guī)搷浣滐紝鐩稿簲鐨勶紝鐙韓閿佸氨鏄暣涓枃浠跺氨鏄綊涓涓嚎紼嬫墍鏈夛紝鍏跺畠綰跨▼鏃犳硶璁塊棶榪欎釜鏁版嵁鏂囦歡銆備竴鑸琈ySQL涓? 鏈蹇殑瀛樺偍寮曟搸MyISAM錛屽畠鏄熀浜庤〃閿佸畾鐨勶紝灝辨槸璇村鏋滀竴閿佸畾鐨勮瘽錛岄偅涔堟暣涓暟鎹枃浠跺閮ㄩ兘鏃犳硶璁塊棶錛屽繀欏葷瓑鍓嶄竴涓搷浣滃畬鎴愬悗錛屾墠鑳芥帴鏀朵笅涓涓搷浣滐紝 閭d箞鍦ㄨ繖涓墠涓涓搷浣滄病鏈夋墽琛屽畬鎴愶紝鍚庝竴涓搷浣滅瓑寰呭湪闃熷垪閲屾棤娉曟墽琛岀殑鎯呭喌鍙仛闃誨錛屼竴鑸垜浠氫織鎰忎箟涓婂彨鍋?#8220;閿佽〃”銆?/div> <div> </div> <div>閿佽〃鐩存帴瀵艱嚧鐨勫悗鏋滄槸浠涔堬紵灝辨槸澶ч噺鐨凷QL鏃犳硶绔嬪嵆鎵ц錛屽繀欏葷瓑闃熷垪鍓嶉潰鐨凷QL鍏ㄩ儴鎵ц瀹屾瘯鎵嶈兘緇х畫鎵ц銆傝繖涓棤娉曟墽琛岀殑SQL灝變細瀵艱嚧娌℃湁緇撴灉錛屾垨鑰呭歡榪熶弗閲嶏紝褰卞搷鐢ㄦ埛浣撻獙銆?/div> <div> </div> <div>鐗瑰埆鏄浜庝竴浜涗嬌鐢ㄦ瘮杈冮綣佺殑琛紝姣斿SNS緋葷粺涓殑鐢ㄦ埛淇℃伅琛ㄣ佽鍧涚郴緇熶腑鐨勫笘瀛愯〃絳夌瓑錛岄兘鏄闂噺澶у緢澶х殑琛紝涓轟簡淇濊瘉鏁版嵁鐨勫揩閫熸彁鍙栬繑鍥炵粰鐢ㄦ埛錛屽繀欏諱嬌鐢ㄤ竴浜涘鐞嗘柟寮忔潵瑙e喅榪欎釜闂錛岃繖涓氨鏄垜浠婂ぉ瑕佽亰鍒扮殑鍒嗚〃鎶鏈?/div> <div> </div> <div> </div> <div>鍒嗚〃鎶鏈【鍚嶆濅箟錛屽氨鏄妸鑻ュ共涓瓨鍌ㄧ浉鍚岀被鍨嬫暟鎹殑琛ㄥ垎鎴愬嚑涓〃鍒嗚〃瀛樺偍錛屽湪鎻愬彇鏁版嵁鐨勬椂鍊欙紝涓嶅悓鐨勭敤鎴瘋闂笉鍚岀殑琛紝浜掍笉鍐茬獊錛屽噺灝戦攣琛ㄧ殑鍑? 鐜囥傛瘮濡傦紝鐩墠淇濆瓨鐢ㄦ埛鍒嗚〃鏈変袱涓〃錛屼竴涓槸user_1琛紝榪樻湁涓涓槸 user_2 琛紝涓や釜琛ㄤ繚瀛樹簡涓嶅悓鐨勭敤鎴蜂俊鎭紝user_1 淇濆瓨浜嗗墠10涓囩殑鐢ㄦ埛淇℃伅錛寀ser_2淇濆瓨浜嗗悗10涓囧悕鐢ㄦ埛鐨勪俊鎭紝鐜板湪濡傛灉鍚屾椂鏌ヨ鐢ㄦ埛 heiyeluren1 鍜?heiyeluren2 榪欎釜涓や釜鐢ㄦ埛錛岄偅涔堝氨鏄垎琛ㄤ粠涓嶅悓鐨勮〃鎻愬彇鍑烘潵錛屽噺灝戦攣琛ㄧ殑鍙兘銆?/div> <div> </div> <div> </div> <div>鎴戜笅闈㈣璁茶堪鐨勪袱縐嶅垎琛ㄦ柟娉曟垜鑷繁閮芥病鏈夊疄楠岃繃錛屼笉淇濊瘉鍑嗙‘鑳界敤錛屽彧鏄彁渚涗竴涓璁℃濊礬銆備笅闈㈠叧浜庡垎琛ㄧ殑渚嬪瓙鎴戝亣璁炬槸鍦ㄤ竴涓創(chuàng)鍚х郴緇熺殑鍩虹涓婃潵榪涜澶勭悊鍜屾瀯寤虹殑銆傦紙濡傛灉娌℃湁鐢ㄨ繃璐村惂鐨勭敤鎴瘋刀绱oogle涓涓嬶級</div> <div> </div> <div> </div> <div> </div> <div><strong> 浜屻佸熀浜庡熀紜琛ㄧ殑鍒嗚〃澶勭悊</strong> </div> <div> </div> <div>榪欎釜鍩轟簬鍩虹琛ㄧ殑鍒嗚〃澶勭悊鏂瑰紡澶ц嚧鐨勬濇兂灝辨槸錛氫竴涓富瑕佽〃錛屼繚瀛樹簡鎵鏈夌殑鍩烘湰淇℃伅錛屽鏋滄煇涓」鐩渶瑕佹壘鍒板畠鎵瀛樺偍鐨勮〃錛岄偅涔堝繀欏諱粠榪欎釜鍩虹琛ㄤ腑 鏌ユ壘鍑哄搴旂殑琛ㄥ悕絳夐」鐩紝濂界洿鎺ヨ闂繖涓〃銆傚鏋滆寰楄繖涓熀紜琛ㄩ熷害涓嶅蹇紝鍙互瀹屽叏鎶婃暣涓熀紜琛ㄤ繚瀛樺湪緙撳瓨鎴栬呭唴瀛樹腑錛屾柟渚挎湁鏁堢殑鏌ヨ銆?/div> <div> </div> <div>鎴戜滑鍩轟簬璐村惂鐨勬儏鍐碉紝鏋勫緩鍋囪濡備笅鐨?寮犺〃錛?/div> <div> </div> <div>1. 璐村惂鐗堝潡琛? 淇濆瓨璐村惂涓増鍧楃殑淇℃伅</div> <div>2. 璐村惂涓婚琛細淇濆瓨璐村惂涓増鍧椾腑鐨勪富棰樹俊鎭紝鐢ㄤ簬嫻忚</div> <div>3. 璐村惂鍥炲琛細淇濆瓨涓婚鐨勫師濮嬪唴瀹瑰拰鍥炲鍐呭</div> <div> </div> <div> </div> <div>“璐村惂鐗堝潡琛?#8221;鍖呭惈濡備笅瀛楁錛?/div> <div>鐗堝潡ID       board_id          int(10)</div> <div>鐗堝潡鍚嶇О    board_name      char(50)</div> <div>瀛愯〃ID       table_id            smallint(5)</div> <div>浜х敓鏃墮棿    created             datetime</div> <div> </div> <div>“璐村惂涓婚琛?#8221;鍖呭惈濡備笅瀛楁錛?/div> <div>涓婚I(yè)D          topic_id        int(10)</div> <div>涓婚鍚嶇О        topic_name     char(255)</div> <div>鐗堝潡ID          board_id          int(10)</div> <div>鍒涘緩鏃墮棿       created           datetime</div> <div> </div> <div>“璐村惂鍥炲琛?#8221;鐨勫瓧孌靛涓嬶細</div> <div>鍥炲ID        reply_id           int(10)</div> <div>鍥炲鍐呭      reply_text        text</div> <div>涓婚I(yè)D        topic_id           int(10)</div> <div>鐗堝潡ID        board_id         int(10)</div> <div>鍒涘緩鏃墮棿      created            datetime</div> <div> </div> <div>閭d箞涓婇潰淇濆瓨浜嗘垜浠暣涓創(chuàng)鍚т腑鐨勮〃緇撴瀯淇℃伅錛屼笁涓〃瀵瑰簲鐨勫叧緋繪槸錛?/div> <div> </div> <div>鐗堝潡 --> 澶氫釜涓婚</div> <div>涓婚 --> 澶氫釜鍥炲</div> <div> </div> <div>閭d箞灝辨槸璇達紝琛ㄦ枃浠跺ぇ灝忕殑鍏崇郴鏄細</div> <div>鐗堝潡琛ㄦ枃浠?< 涓婚琛ㄦ枃浠?< 鍥炲琛ㄦ枃浠?/div> <div> </div> <div>鎵浠ュ熀鏈彲浠ョ‘瀹氶渶瑕佸涓婚琛ㄥ拰鍥炲琛ㄨ繘琛屽垎琛紝宸插鍔犳垜浠暟鎹绱㈡煡璇㈡洿鏀規(guī)椂鍊欑殑閫熷害鍜屾ц兘銆?/div> <div> </div> <div>鐪嬩簡涓婇潰鐨勮〃緇撴瀯錛屼細鏄庢樉鍙戠幇錛屽湪“鐗堝潡琛?#8221;涓繚瀛樹簡涓涓?table_id"瀛楁錛岃繖涓瓧孌靛氨鏄敤浜庝繚瀛樹竴涓増鍧楀搴旂殑涓婚鍜屽洖澶嶉兘鏄垎琛ㄤ繚瀛樺湪浠涔堣〃閲岀殑銆?/div> <div> </div> <div>姣斿鎴戜滑鏈変竴涓彨鍋?#8220;PHP”鐨勮創(chuàng)鍚э紝board_id鏄?錛屽瓙琛↖D涔熸槸1錛岄偅涔堣繖鏉¤褰曞氨鏄細</div> <div> </div> <div>board_id | board_name | table_id | created</div> <div>1 | PHP | 1 | 2007-01-19 00:30:12</div> <div> </div> <div>鐩稿簲鐨勶紝濡傛灉鎴戦渶瑕佹彁鍙?#8220;PHP”鍚ч噷鐨勬墍鏈変富棰橈紝閭d箞灝卞繀欏繪寜鐓ц〃閲屼繚瀛樼殑table_id鏉ョ粍鍚堜竴涓瓨鍌ㄤ簡涓婚鐨勮〃鍚嶇О錛屾瘮濡傛垜浠富棰樿〃鐨勫墠緙鏄?#8220;topic_”錛岄偅涔堢粍鍚堝嚭鏉?#8220;PHP”鍚у搴旂殑涓婚琛ㄥ簲璇ユ槸錛?#8220;topic_1”錛岄偅涔堟垜浠墽琛岋細</div> <div> </div> <div>Select * FROM topic_1 Where board_id = 1 orDER BY topic_id DESC LIMIT 10</div> <div> </div> <div>榪欐牱灝辮兘澶熻幏鍙栬繖涓富棰樹笅闈㈠洖澶嶅垪琛紝鏂逛究鎴戜滑榪涜鏌ョ湅錛屽鏋滈渶瑕佹煡鐪嬫煇涓富棰樹笅闈㈢殑鍥炲錛屾垜浠彲浠ョ戶緇嬌鐢ㄧ増鍧楄〃涓繚瀛樼殑“table_id”鏉ヨ繘琛屾煡璇€傛瘮濡傛垜浠洖澶嶈〃鐨勫墠緙鏄?#8220;reply_”錛岄偅涔堝氨鍙互緇勫悎鍑?#8220;PHP”鍚х殑ID涓?鐨勪富棰樼殑鍥炲錛?/div> <div> </div> <div>Select * FROM reply_1 Where topic_id = 1 orDER BY reply_id DESC LIMIT 10</div> <div> </div> <div>榪欓噷錛屾垜浠兘澶熸竻鏅扮殑鐪嬪埌錛屽叾瀹炴垜浠繖閲屼嬌鐢ㄤ簡鍩虹琛紝鍩虹琛ㄥ氨鏄垜浠殑鐗堝潡琛ㄣ傞偅涔堢浉搴旂殑錛岃偗瀹氫細璇達細鍩虹琛ㄧ殑鏁版嵁閲忓ぇ浜嗕互鍚庡浣曚繚璇佸畠鐨勯熷害鍜屾晥鐜囷紵</div> <div> </div> <div>褰撶劧錛屾垜浠氨蹇呴』浣垮緱榪欎釜鍩虹琛ㄤ繚鎸佹渶濂界殑閫熷害鍜屾ц兘錛屾瘮濡傦紝鍙互閲囩敤MySQL鐨勫唴瀛樿〃鏉ュ瓨鍌紝鎴栬呬繚瀛樺湪鍐呭瓨褰撲腑錛屾瘮濡侻emcache涔嬬被鐨勫唴瀛樼紦瀛樼瓑絳夛紝鍙互鎸夌収瀹為檯鎯呭喌鏉ヨ繘琛岃皟鏁淬?/div> <div> </div> <div>涓鑸熀浜庡熀紜琛ㄧ殑鍒嗚〃鏈哄埗鍦⊿NS銆佷氦鍙嬨佽鍧涚瓑Web2.0緗戠珯涓槸涓瘮杈冧笉閿欑殑瑙e喅鏂規(guī)錛屽湪榪欎簺緗戠珯涓紝瀹屽叏鍙互鍗曠嫭浣跨敤涓涓〃鏉ユ潵淇濆瓨鍩烘湰鏍囪瘑鍜岀洰鏍囪〃涔嬮棿鐨勫叧緋匯備嬌鐢ㄨ〃淇濆瓨瀵瑰簲鍏崇郴鐨勫ソ澶勬槸浠ュ悗鎵╁睍闈炲父鏂逛究錛屽彧闇瑕佸鍔犱竴涓〃璁板綍銆?/div> <div> </div> <div> </div> <div>銆?strong> 浼樺娍</strong> 銆戝鍔犲垹闄よ妭鐐歸潪甯告柟渚匡紝涓哄悗鏈熷崌綰х淮鎶ゅ甫鏉ュ緢澶т究鍒?/div> <div>銆?strong> 鍔e娍</strong> 銆戦渶瑕佸鍔犺〃鎴栬呭鏌愪竴涓〃榪涜鎿嶄綔錛岃繕鏄棤娉曠寮鏁版嵁搴擄紝浼氫駭鐢熺摱棰?/div> <div> </div> <div> </div> <div> </div> <div><strong> 涓夈佸熀浜?/strong> <strong> Hash</strong> <strong> 綆楁硶鐨勫垎琛ㄥ鐞?/strong> </div> <div> </div> <div>鎴戜滑鐭ラ亾Hash琛ㄥ氨鏄氳繃鏌愪釜鐗規(guī)畩鐨凥ash綆楁硶璁$畻鍑虹殑涓涓鹼紝榪欎釜鍊煎繀欏繪槸鎯熶竴鐨勶紝騫朵笖鑳藉浣跨敤榪欎釜璁$畻鍑烘潵鐨勫兼煡鎵懼埌闇瑕佺殑鍊鹼紝榪欎釜鍙仛鍝堝笇琛ㄣ?/div> <div> </div> <div>鎴戜滑鍦ㄥ垎琛ㄩ噷鐨刪ash綆楁硶璺熻繖涓濇兂綾諱技錛氶氳繃涓涓師濮嬬洰鏍囩殑ID鎴栬呭悕縐伴氳繃涓瀹氱殑hash綆楁硶璁$畻鍑烘暟鎹瓨鍌ㄨ〃鐨勮〃鍚嶏紝鐒跺悗璁塊棶鐩稿簲鐨勮〃銆?/div> <div> </div> <div>緇х畫鎷夸笂闈㈢殑璐村惂鏉ヨ錛屾瘡涓創(chuàng)鍚ф湁鐗堝潡鍚嶇О鍜岀増鍧桰D錛岄偅涔堣繖涓ら」鍊兼槸鍥哄畾鐨勶紝騫朵笖鏄儫涓鐨勶紝閭d箞鎴戜滑灝卞彲浠ヨ冭檻閫氳繃瀵硅繖涓ら」鍊間腑鐨勪竴欏硅繘琛屼竴浜涜繍綆楀緱鍑轟竴涓洰鏍囪〃鐨勫悕縐般?/div> <div> </div> <div>鐜板湪鍋囧鎴戜滑閽堝鎴戜滑榪欎釜璐村惂緋葷粺錛屽亣璁劇郴緇熸渶澶у厑璁?浜挎潯鏁版嵁錛岃冭檻姣忎釜琛ㄤ繚瀛?00涓囨潯璁板綍錛岄偅涔堟暣涓郴緇熷氨涓嶈秴榪?00涓〃灝辮兘澶熷綰熾傛寜鐓ц繖涓爣鍑嗭紝鎴戜滑鍋囪鍦ㄨ創(chuàng)鍚х殑鐗堝潡ID涓婅繘琛宧ash錛岃幏寰椾竴涓猭ey鍊鹼紝榪欎釜鍊煎氨鏄垜浠殑琛ㄥ悕錛岀劧鍚庤闂浉搴旂殑琛ㄣ?/div> <div> </div> <div>鎴戜滑鏋勯犱竴涓畝鍗曠殑hash綆楁硶錛?/div> <div> </div> <div>function get_hash($id){</div> <div>     $str = bin2hex($id);</div> <div>     $hash = substr($str, 0, 4);</div> <div>     if (strlen($hash)<4){</div> <div>         $hash = str_pad($hash, 4, "0");</div> <div>     }</div> <div>     return $hash;</div> <div>}</div> <div> </div> <div>綆楁硶澶ц嚧灝辨槸浼犲叆涓涓増鍧桰D鍊鹼紝鐒跺悗鍑芥暟榪斿洖涓涓?浣嶇殑瀛楃涓詫紝濡傛灉瀛楃涓查暱搴︿笉澶燂紝浣跨敤0榪涜琛ュ叏銆?/div> <div> </div> <div>姣斿錛歡et_hash(1)錛岃緭鍑虹殑緇撴灉鏄?#8220;3100”錛岃緭鍏ワ細get_hash(23819)錛屽緱鍒扮殑緇撴灉鏄細3233錛岄偅涔堟垜浠粡榪囩畝鍗曠殑璺熻〃鍓嶇紑緇勫悎錛屽氨鑳藉璁塊棶榪欎釜琛ㄤ簡銆傞偅涔堟垜浠渶瑕佽闂甀D涓?鐨勫唴瀹規(guī)椂鍊欏摝錛岀粍鍚堢殑琛ㄥ皢鏄細topic_3100銆乺eply_3100錛岄偅涔堝氨鍙互鐩存帴瀵圭洰鏍囪〃榪涜璁塊棶浜嗐?/div> <div> </div> <div>褰撶劧錛屼嬌鐢╤ash綆楁硶鍚庯紝鏈夐儴鍒嗘暟鎹槸鍙兘鍦ㄥ悓涓涓〃鐨勶紝榪欎竴鐐硅窡hash琛ㄤ笉鍚岋紝hash琛ㄦ槸灝介噺瑙e喅鍐茬獊錛屾垜浠繖閲屼笉闇瑕侊紝褰撶劧鍚屾牱闇瑕侀嫻嬪拰鍒嗘瀽琛ㄦ暟鎹彲鑳戒繚瀛樼殑琛ㄥ悕銆?/div> <div> </div> <div> </div> <div>濡傛灉闇瑕佸瓨鍌ㄧ殑鏁版嵁鏇村錛屽悓鏍風(fēng)殑錛屽彲浠ュ鐗堝潡鐨勫悕瀛楄繘琛宧ash鎿嶄綔錛屾瘮濡備篃鏄笂闈㈢殑浜岃繘鍒惰漿鎹㈡垚鍗佸叚榪涘埗錛屽洜涓烘眽瀛楁瘮鏁板瓧鍜屽瓧姣嶈澶氬緢澶氾紝閭d箞閲嶅鍑犵巼鏇村皬錛屼絾鏄彲鑳界粍鍚堟垚鐨勮〃灝辨洿澶氫簡錛岀浉搴斿氨蹇呴』鑰冭檻涓浜涘叾瀹冪殑闂銆?/div> <div> </div> <div>褰掓牴緇撳簳錛屼嬌鐢╤ash鏂瑰紡鐨勮瘽蹇呴』閫夋嫨涓涓ソ鐨刪ash綆楁硶錛屾墠鑳界敓鎴愭洿澶氱殑琛紝鐒舵暟鎹煡璇㈢殑鏇磋繀閫熴?/div> <div> </div> <div> </div> <div>銆?strong> 浼樼偣hash綆楁硶鐩存帴寰楀嚭鐩爣琛ㄥ悕縐幫紝鏁堢巼寰堥珮</strong> 銆戦氳繃</div> <div>銆?strong> 鍔e娍</strong> 銆戞墿灞曟ф瘮杈冨樊錛岄夋嫨浜嗕竴涓猦ash綆楁硶錛屽畾涔変簡澶氬皯鏁版嵁閲忥紝浠ュ悗鍙兘鍦ㄨ繖涓暟鎹噺涓婅窇錛屼笉鑳借秴榪囪繃榪欎釜鏁版嵁閲忥紝鍙墿灞曟х◢宸?/div> <div> </div> <div> </div> <div> </div> <div><strong> 鍥涖佸叾瀹冮棶棰?/strong> </div> <div> </div> <div><strong> 1. </strong> <strong> 鎼滅儲闂</strong> </div> <div>鐜板湪鎴戜滑宸茬粡榪涜鍒嗚〃浜嗭紝閭d箞灝辨棤娉曠洿鎺ュ琛ㄨ繘琛屾悳绱紝鍥犱負浣犳棤娉曞鍙兘緋葷粺涓凡緇忓瓨鍦ㄧ殑鍑犲崄鎴栬呭嚑鐧句釜琛ㄨ繘琛屾绱紝鎵浠ユ悳绱㈠繀欏誨熷姪絎笁鏂圭殑緇勪歡鏉ヨ繘琛岋紝姣斿Lucene浣滀負绔欏唴鎼滅儲寮曟搸鏄釜涓嶉敊鐨勯夋嫨銆?/div> <div> </div> <div><strong> 2. </strong> <strong> 琛ㄦ枃浠墮棶棰?/strong> </div> <div>鎴戜滑鐭ラ亾MySQL鐨凪yISAM寮曟搸姣忎釜琛ㄩ兘浼氱敓鎴愪笁涓枃浠訛紝*.frm銆?.MYD銆?.MYI 涓変釜鏂囦歡錛屽垎琛ㄧ敤鏉ヤ繚瀛樿〃緇撴瀯銆佽〃鏁版嵁鍜岃〃绱㈠紩銆侺inux涓嬮潰姣忎釜鐩綍涓嬬殑鏂囦歡鏁伴噺鏈濂戒笉瑕佽秴榪?000涓紝涓嶇劧媯绱㈡暟鎹皢鏇存參錛岄偅涔堟瘡涓〃閮戒細鐢熸垚涓? 涓枃浠訛紝鐩稿簲鐨勫鏋滃垎琛ㄨ秴榪?00涓〃錛岄偅涔堝皢媯绱㈤潪甯告參錛屾墍浠ヨ繖鏃跺欏氨蹇呴』鍐嶈繘琛屽垎錛屾瘮濡傚湪榪涜鏁版嵁搴撶殑鍒嗙銆?/div> <div> </div> <div>浣跨敤鍩虹琛紝鎴戜滑鍙互鏂板鍔犱竴涓瓧孌碉紝鐢ㄦ潵淇濆瓨榪欎釜琛ㄤ繚瀛樺湪浠涔堟暟鎹備嬌鐢℉ash鐨勬柟寮忥紝鎴戜滑蹇呴』鎴彇hash鍊間腑絎嚑浣嶆潵浣滀負鏁版嵁搴撶殑鍚嶅瓧銆傝繖鏍鳳紝瀹屽ソ鐨勮В鍐寵繖涓棶棰樸?/div> <div> </div> <div> </div> <div><strong> 浜斻佹葷粨</strong> </div> <div> </div> <div>鍦ㄥぇ璐熻澆搴旂敤褰撲腑錛屾暟鎹簱涓鐩存槸涓緢閲嶈鐨勭摱棰堬紝蹇呴』瑕佺獊鐮達紝鏈枃璁茶В浜嗕袱縐嶅垎琛ㄧ殑鏂瑰紡錛屽笇鏈涘寰堝浜鴻兘澶熸湁鍚彂鐨勪綔鐢ㄣ傚綋鐒訛紝鏈枃浠g爜鍜岃鎯蟲病鏈夌粡榪囦換浣曚唬鐮佹祴璇曪紝鎵浠ユ棤娉曚繚璇佽璁$殑瀹屽叏鍑嗙‘瀹炵敤錛屽叿浣撹繕鏄渶瑕佽鑰呭湪浣跨敤榪囩▼褰撲腑璁ょ湡鍒嗘瀽瀹炴柦銆?/div> <div> </div> <br><img src ="http://www.shnenglu.com/colys/aggbug/32397.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/colys/" target="_blank">colys</a> 2007-09-18 09:51 <a href="http://www.shnenglu.com/colys/articles/32397.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>闈為掑綊閬嶅巻鏂囦歡澶?/title><link>http://www.shnenglu.com/colys/articles/32395.html</link><dc:creator>colys</dc:creator><author>colys</author><pubDate>Tue, 18 Sep 2007 01:39:00 GMT</pubDate><guid>http://www.shnenglu.com/colys/articles/32395.html</guid><wfw:comment>http://www.shnenglu.com/colys/comments/32395.html</wfw:comment><comments>http://www.shnenglu.com/colys/articles/32395.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/colys/comments/commentRss/32395.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/colys/services/trackbacks/32395.html</trackback:ping><description><![CDATA[<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">    </span><span style="color: #808080;">///</span><span style="color: #008000;"> </span><span style="color: #808080;"><summary></span><span style="color: #008000;"><br>    </span><span style="color: #808080;">///</span><span style="color: #008000;"> 闈為掑綊閬嶅巻鏂囦歡澶?br>    </span><span style="color: #808080;">///</span><span style="color: #008000;"> </span><span style="color: #808080;"></summary></span><span style="color: #808080;"><br></span><span style="color: #000000;">    </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">class</span><span style="color: #000000;"> UnRecursionDirectoryReader <br>    {<br>        </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">event</span><span style="color: #000000;"> UnRecursionRead OnUnRecursionItemRead;<br>        </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">event</span><span style="color: #000000;"> UnRecursionRead OnUnRecursionDequeue;<br>        </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">event</span><span style="color: #000000;"> UnRecursionRead OnUnRecursionEnqueue;<br><br>        </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> Read(</span><span style="color: #0000ff;">string</span><span style="color: #000000;"> Path)<br>        {<br>            </span><span style="color: #0000ff;">string</span><span style="color: #000000;"> P_Path </span><span style="color: #000000;">=</span><span style="color: #000000;"> Path;<br>            Queue</span><span style="color: #000000;"><</span><span style="color: #0000ff;">string</span><span style="color: #000000;">></span><span style="color: #000000;"> source </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> Queue</span><span style="color: #000000;"><</span><span style="color: #0000ff;">string</span><span style="color: #000000;">></span><span style="color: #000000;">();<br>            </span><span style="color: #0000ff;">bool</span><span style="color: #000000;"> IsHasChild </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">true</span><span style="color: #000000;">;</span><span style="color: #008000;">//</span><span style="color: #008000;">鏄惁鏈夊瓙鏂囦歡澶?nbsp;           </span><span style="color: #008000;"><br></span><span style="color: #000000;">            </span><span style="color: #0000ff;">while</span><span style="color: #000000;"> (IsHasChild)<br>            {<br>                </span><span style="color: #0000ff;">string</span><span style="color: #000000;">[] Directorys </span><span style="color: #000000;">=</span><span style="color: #000000;"> System.IO.Directory.GetDirectories(P_Path);<br>                </span><span style="color: #0000ff;">string</span><span style="color: #000000;">[] Files </span><span style="color: #000000;">=</span><span style="color: #000000;"> System.IO.Directory.GetFiles(P_Path);<br>                </span><span style="color: #0000ff;">foreach</span><span style="color: #000000;"> (</span><span style="color: #0000ff;">string</span><span style="color: #000000;"> dir </span><span style="color: #0000ff;">in</span><span style="color: #000000;"> Directorys)<br>                {                       <br>                    source.Enqueue(dir); </span><span style="color: #008000;">//</span><span style="color: #008000;">鍏ラ槦鍒?寮濮嬭闂枃浠跺す</span><span style="color: #008000;"><br></span><span style="color: #000000;">                    </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (OnUnRecursionEnqueue </span><span style="color: #000000;">!=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">null</span><span style="color: #000000;">) OnUnRecursionEnqueue(dir, P_Path);<br>                }<br>                </span><span style="color: #0000ff;">foreach</span><span style="color: #000000;"> (</span><span style="color: #0000ff;">string</span><span style="color: #000000;"> file </span><span style="color: #0000ff;">in</span><span style="color: #000000;"> Files)<br>                {                      </span><span style="color: #008000;"></span><span style="color: #008000;"><br></span><span style="color: #000000;">                    </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (OnUnRecursionItemRead </span><span style="color: #000000;">!=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">null</span><span style="color: #000000;">) OnUnRecursionItemRead(file, P_Path);</span><span style="color: #000000;"> </span><span style="color: #008000;">//</span><span style="color: #008000;">璁塊棶鏂囦歡</span><br><span style="color: #000000;">                }<br>                </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (source.Count </span><span style="color: #000000;">></span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">)<br>                {<br>                    </span><span style="color: #0000ff;">string</span><span style="color: #000000;"> OldPath </span><span style="color: #000000;">=</span><span style="color: #000000;"> P_Path;<br>                    P_Path </span><span style="color: #000000;">=</span><span style="color: #000000;"> source.Dequeue();</span><span style="color: #008000;">//</span><span style="color: #008000;">鍑洪槦鍒?鏇存崲鏂囦歡澶?/span><span style="color: #008000;"><br></span><span style="color: #000000;">                    </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (OnUnRecursionDequeue </span><span style="color: #000000;">!=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">null</span><span style="color: #000000;">) OnUnRecursionDequeue(P_Path, OldPath);<br>                }<br>                </span><span style="color: #0000ff;">else</span><span style="color: #000000;"><br>                {<br>                    IsHasChild </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br>                }<br>            }<br>        }<br>    }<br><br>demo:<br>          <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">TreeNode TargetNode </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">null</span><span style="color: #000000;">; </span><span style="color: #008000;">//</span><span style="color: #008000;">鎸囧悜treeview鐨勭粨鐐?/span><span style="color: #008000;"><br></span><span style="color: #000000;">    Queue</span><span style="color: #000000;"><</span><span style="color: #000000;">TreeNode</span><span style="color: #000000;">></span><span style="color: #000000;"> TreeQueue </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> Queue</span><span style="color: #000000;"><</span><span style="color: #000000;">TreeNode</span><span style="color: #000000;">></span><span style="color: #000000;">(); </span><span style="color: #008000;">//</span><span style="color: #008000;">涓存椂瀛樻斁</span><span style="color: #008000;"><br></span><span style="color: #000000;"><br>        </span><span style="color: #0000ff;">private</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> read()<br>    {<br>           CYS.UnRecursionDirectoryReader TreeReader </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> CYS.UnRecursionDirectoryReader();<br>            TreeReader.OnUnRecursionDequeue</span><span style="color: #000000;">+=</span><span style="color: #0000ff;">new</span><span style="color: #000000;"> CYS.UnRecursionRead(TreeReader_OnUnRecursionDequeue);<br>            TreeReader.OnUnRecursionEnqueue</span><span style="color: #000000;">+=</span><span style="color: #0000ff;">new</span><span style="color: #000000;"> CYS.UnRecursionRead(TreeReader_OnUnRecursionEnqueue);<br>            TreeReader.OnUnRecursionItemRead</span><span style="color: #000000;">+=</span><span style="color: #0000ff;">new</span><span style="color: #000000;"> CYS.UnRecursionRead(TreeReader_OnUnRecursionItemRead);<br>            TreeReader.Read(AppRoot);            <br>        }<br><br>        </span><span style="color: #0000ff;">private</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> TreeReader_OnUnRecursionItemRead(</span><span style="color: #0000ff;">string</span><span style="color: #000000;"> DireName, </span><span style="color: #0000ff;">string</span><span style="color: #000000;"> Parent)<br>        {            <br>            TargetNode.Nodes.Add(System.IO.Path.GetFileName(DireName));<br>        }<br><br>        </span><span style="color: #0000ff;">private</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> TreeReader_OnUnRecursionDequeue(</span><span style="color: #0000ff;">string</span><span style="color: #000000;"> DireName, </span><span style="color: #0000ff;">string</span><span style="color: #000000;"> Parent)<br>        {<br>            TargetNode </span><span style="color: #000000;">=</span><span style="color: #000000;"> TreeQueue.Dequeue();<br>        }<br><br>        </span><span style="color: #0000ff;">private</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> TreeReader_OnUnRecursionEnqueue(</span><span style="color: #0000ff;">string</span><span style="color: #000000;"> DireName, </span><span style="color: #0000ff;">string</span><span style="color: #000000;"> Parent)<br>        {<br>            TreeNode Node </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> TreeNode(System.IO.Path.GetFileName(DireName));<br>            TargetNode.Nodes.Add(Node);<br>            TreeQueue.Enqueue(Node);<br>        }<br><br><br></span></div> <br></span></div> <br><img src ="http://www.shnenglu.com/colys/aggbug/32395.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/colys/" target="_blank">colys</a> 2007-09-18 09:39 <a href="http://www.shnenglu.com/colys/articles/32395.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title> 濡備綍鑾峰緱鏁版嵁搴撻噷鎵鏈夎〃鐨勫悕瀛楋紙SQL+C#錛?http://www.shnenglu.com/colys/articles/30745.htmlcolyscolysFri, 24 Aug 2007 01:34:00 GMThttp://www.shnenglu.com/colys/articles/30745.htmlhttp://www.shnenglu.com/colys/comments/30745.htmlhttp://www.shnenglu.com/colys/articles/30745.html#Feedback0http://www.shnenglu.com/colys/comments/commentRss/30745.htmlhttp://www.shnenglu.com/colys/services/trackbacks/30745.html騫蟲椂鎴戜滑鎿嶄綔姣旇緝澶氱殑閮芥槸琛ㄩ噷鐨勬暟鎹紝涔熻紿佺劧鏈変竴澶╀細闇瑕佹妸鎵鏈夎〃鐨勫悕瀛楅兘鍒楀嚭鏉ョ湅涓鐪嬧斺旀瘮濡傦紝浣犵殑璁哄潧鏄寜姣忎釜鐗堝潡涓涓〃鏉ョ鐞嗙殑錛岃繖鏃跺欎綘瑕佸湪棣栭〉鍒楀嚭鍚勭増鍧楃殑鍚嶅瓧銆傚簲璇ユ庝箞鍔炲憿錛?/p>

鑲畾寰楃敤SELECT鍚?#8230;…浣嗘垜浠鉤鏃朵嬌鐢⊿ELECT鎿嶄綔鐨勬暟鎹兘鏄〃閲岀殑鏁版嵁錛岃〃鐨勫悕瀛楀茍涓嶆槸琛ㄧ殑鏁版嵁錛岃繖鍙庝箞鍔炲憿錛?/p>

浣犲彲鑳戒細鎯籌細“鍔熻兘寮哄ぇ鐨凷QL Server涓嶄細榪炶繖涔堢畝鍗曠殑鍔熻兘閮藉疄鐜頒笉浜嗗惂錛熶竴瀹氫細鎶婃墍鏈夎〃鐨勫悕瀛楀瓨鍌ㄥ湪鏌愪釜琛ㄩ噷……”娉ㄦ剰鍟︼紒鍦ㄨ繖鍎挎垜瑕佸皬灝忓湴鍋鋒崲涓涓嬫蹇典簡鈥斺旇鍥撅紙View錛変篃綆楁槸涓縐?#8220;琛?#8221;錛屽彧涓嶈繃瀹冩槸鐢卞浐瀹氭煡璇㈠艦鎴愮殑涓縐?#8220;铏氭嫙琛?#8221;銆?/p>

OK錛屼綘鐚滃鍟︼紒鐢盨QL Server綆$悊鐨勬瘡涓暟鎹簱閲岄兘鏈変竴涓悕涓簊ysobjects鐨勮鍥撅紝瀹冩槸system綰у埆鐨勶紝鎵浠ュ畠鐨勫叏闄愬畾鍚嶆槸鈥斺攕ys.sysobjects

浣犲彲鑳藉張浼氶棶錛?#8220;涓轟粈涔堜笉鏄痵ys.tables鑰屾槸sys.objects鍛紵”闂殑濂斤紒鍥犱負榪欏紶琛ㄩ噷瀛樺偍鐨勫彲涓嶅厜鏄暟鎹簱閲岀殑琛紝瀹冨瓨鍌ㄧ殑鏄竴涓暟鎹簱涓墍鏈夌殑“瀵硅薄”鈥斺旀潅涓冩潅鍏寘鎷簡琛ㄧ殑涓婚敭銆佸瓨鍌ㄨ繃紼嬨佽Е鍙戝櫒絳夌瓑錛?font color=#0000ff>涓鍏辨槸24縐?/font>鈥斺旇〃錛圱able錛岀‘鍒囧湴璇存槸“鐢ㄦ埛鑷畾涔夎〃”錛夊彧鏄繖24縐嶅璞′腑鐨勪竴縐嶃?/p>

鍓╀笅鐨勪簨鎯?#8230;…鍚煎惣……

鎵ц涓嬮潰鐨勬煡璇㈣鍙ワ紝鍙互寰楀埌鎵鏈夊寘鍚湪sys.sysobjects瑙嗗浘閲岀殑鏁版嵁

USE AdventureWorks
SELECT *
FROM sys.sysobjects
GO

寰楀嚭鏁版嵁鍚庯紝璇鋒敞鎰忓悕涓簍ype鐨勫垪鈥斺旇繖涓鍒楁爣鏄庝簡瀵硅薄鐨勭被鍨嬶紝涔熷氨鏄墠闈㈡彁鍒扮殑24縐嶃傚湪榪欓噷錛屾垜鐢ㄤ竴涓〃鏍兼妸瀹冧滑鍒楀嚭鏉ワ細

AF = Aggregate function (CLR)
C = CHECK constraint
D = DEFAULT (constraint or stand-alone)
F = FOREIGN KEY constraint
FN = SQL scalar function
FS = Assembly (CLR) scalar function
FT = Assembly (CLR) table-valued function
IF = SQL inline table-valued function
IT = Internal table
P = SQL stored procedure
PC = Assembly (CLR) stored procedure
PK = PRIMARY KEY constraint
R = Rule (old-style, stand-alone)
RF = Replication-filter-procedure
S = System base table
SN = Synonym
SQ = Service queue
TA = Assembly (CLR) DML trigger
TF = SQL table-valued-function
TR = SQL DML trigger
U = Table (user-defined)
UQ = UNIQUE constraint
V = View
X = Extended stored procedure

OK錛屾垜浠寰楀埌鍚嶇О鐨勮〃錛堢敤鎴瘋嚜瀹氫箟琛級灝辨槸綾誨瀷涓?#8220;U”鐨勫璞★紱鑰宻ys.objects鐨勭被鍨嬩負“S”銆傛墍浠ワ紝涓轟簡杈懼埌鎴戜滑鐨勬渶緇堢洰鐨勶紝SQL璇彞搴旇鏄斺?/p>

USE AdventureWorks
SELECT name
FROM sys.sysobjects
WHERE type='U'
GO

 

 涓嬮潰鎴戝啀緇欏嚭涓孌電敤C#瀹炵幇鐨勪唬鐮侊細

  

*
 1//========<姘翠箣鐪熻皼>========//
 2//====<浠ヤ漢涓烘湰錛屽叧娉ㄦ皯鐢?gt;====//
 3//   http://blog.csdn.net/FantasiaX   //
 4using System;
 5using System.Data.SqlClient;
 6
 7namespace SqlSample
 8{
 9         class Program
10         {
11                   static void Main(string[] args)
12                   {
13                            string connectionString = @"Server=(local); Database=AdventureWorks; User ID=sa; Password=password";
14                            SqlConnection connection = new SqlConnection();
15                            connection.ConnectionString = connectionString;
16
17                            string sqlCommandString = @"USE AdventureWorks SELECT name FROM sys.sysobjects WHERE type='U' ORDER BY name";
18                            SqlCommand command = new SqlCommand();
19                            command.CommandType = System.Data.CommandType.Text;
20                            command.CommandText = sqlCommandString;
21                            command.Connection = connection;
22                            connection.Open();
23
24                            SqlDataReader reader = command.ExecuteReader();
25                            while (reader.Read())
26                            {
27                                     Console.WriteLine(reader[@"name"]);
28                            }

29                   }

30         }

31}

32


榪愯鍚庡緱鍒扮殑鎴浘鏄細
 
  


colys 2007-08-24 09:34 鍙戣〃璇勮
]]>
涓や釜 DataTable 鍒犳敼鐨勭畻娉?/title><link>http://www.shnenglu.com/colys/articles/26219.html</link><dc:creator>colys</dc:creator><author>colys</author><pubDate>Tue, 12 Jun 2007 15:53:00 GMT</pubDate><guid>http://www.shnenglu.com/colys/articles/26219.html</guid><wfw:comment>http://www.shnenglu.com/colys/comments/26219.html</wfw:comment><comments>http://www.shnenglu.com/colys/articles/26219.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/colys/comments/commentRss/26219.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/colys/services/trackbacks/26219.html</trackback:ping><description><![CDATA[<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008000;">/*</span><span style="color: #008000;"><br><br>  宸茬煡 DataTable (first鍜?nbsp;second) , 涓や釜DataTable涓兘鏈変竴鍒?nbsp;ID,騫朵笖鍊煎敮涓<br><br>  瑕佹眰:緇勭粐涓涓柊鐨凞ataTable ,婊¤凍浠ヤ笅:<br>       濡傛灉 first 瀛樺湪浜?nbsp;second 涓垯鏇存柊first鐨凬ame鍒椾負second鐨凬ame<br>       濡傛灉涓嶅瓨鍦ㄥ垯鍒犻櫎璇ヨ<br>       濡傛灉 second 鐨勮涓嶅瓨鍦ㄤ簬first 灝辨坊鍔犲埌 first涓?br><br></span><span style="color: #008000;">*/</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">using</span><span style="color: #000000;"> System;<br></span><span style="color: #0000ff;">using</span><span style="color: #000000;"> System.Collections;<br></span><span style="color: #0000ff;">using</span><span style="color: #000000;"> System.Text;<br></span><span style="color: #0000ff;">using</span><span style="color: #000000;"> System.Data;<br><br></span><span style="color: #0000ff;">namespace</span><span style="color: #000000;"> ConsoleApplication1<br>{<br>    </span><span style="color: #0000ff;">class</span><span style="color: #000000;"> Program<br>    {<br>        </span><span style="color: #0000ff;">static</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> Main(</span><span style="color: #0000ff;">string</span><span style="color: #000000;">[] args)<br>        {<br>            Demo d </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> Demo();<br>            d.Run();          <br>        }<br>    }<br><br>    </span><span style="color: #0000ff;">class</span><span style="color: #000000;"> Demo<br>    {<br>        DataTable first, second;       <br><br>        </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> Run()<br>        {<br>            </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> i, j;<br>            first </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> DataTable();<br>            first.Columns.Add(</span><span style="color: #000000;">"</span><span style="color: #000000;">ID</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>            first.Columns.Add(</span><span style="color: #000000;">"</span><span style="color: #000000;">Name</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>            DataRow dr;<br>            </span><span style="color: #0000ff;">for</span><span style="color: #000000;"> (i </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">; i </span><span style="color: #000000;"><</span><span style="color: #000000;"> </span><span style="color: #000000;">100</span><span style="color: #000000;">; i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>            {<br>                dr </span><span style="color: #000000;">=</span><span style="color: #000000;"> first.NewRow();<br>                dr[</span><span style="color: #000000;">0</span><span style="color: #000000;">] </span><span style="color: #000000;">=</span><span style="color: #000000;"> i;<br>                dr[</span><span style="color: #000000;">1</span><span style="color: #000000;">] </span><span style="color: #000000;">=</span><span style="color: #000000;"> i;<br>                first.Rows.Add(dr);<br>            }<br>            Console.Write(</span><span style="color: #000000;">"</span><span style="color: #000000;">\n\nold first:\n</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>            </span><span style="color: #0000ff;">foreach</span><span style="color: #000000;"> (DataRow outRow </span><span style="color: #0000ff;">in</span><span style="color: #000000;"> first.Rows)<br>            {<br>                Console.Write(outRow[</span><span style="color: #000000;">0</span><span style="color: #000000;">].ToString() </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #000000;">"</span><span style="color: #000000;">  |  </span><span style="color: #000000;">"</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> outRow[</span><span style="color: #000000;">1</span><span style="color: #000000;">].ToString() </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #000000;">"</span><span style="color: #000000;">\n</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>            }<br><br>            second </span><span style="color: #000000;">=</span><span style="color: #000000;"> first.Clone();<br>            </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.AddToSecond(</span><span style="color: #000000;">1</span><span style="color: #000000;">, </span><span style="color: #000000;">00001</span><span style="color: #000000;">);<br>            </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.AddToSecond(</span><span style="color: #000000;">2</span><span style="color: #000000;">, </span><span style="color: #000000;">20000</span><span style="color: #000000;">);<br>            </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.AddToSecond(</span><span style="color: #000000;">5</span><span style="color: #000000;">, </span><span style="color: #000000;">55555</span><span style="color: #000000;">);<br>            </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.AddToSecond(</span><span style="color: #000000;">100</span><span style="color: #000000;">,</span><span style="color: #000000;">00100</span><span style="color: #000000;">);<br>            </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.AddToSecond(</span><span style="color: #000000;">150</span><span style="color: #000000;">, </span><span style="color: #000000;">00150</span><span style="color: #000000;">);<br>            Console.Write(</span><span style="color: #000000;">"</span><span style="color: #000000;">\n\nold second:\n</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>            </span><span style="color: #0000ff;">foreach</span><span style="color: #000000;"> (DataRow outRow </span><span style="color: #0000ff;">in</span><span style="color: #000000;"> second.Rows)<br>            {<br>                Console.Write(outRow[</span><span style="color: #000000;">0</span><span style="color: #000000;">].ToString() </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #000000;">"</span><span style="color: #000000;">  |  </span><span style="color: #000000;">"</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> outRow[</span><span style="color: #000000;">1</span><span style="color: #000000;">].ToString() </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #000000;">"</span><span style="color: #000000;">\n</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>            }<br>            </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> len1 </span><span style="color: #000000;">=</span><span style="color: #000000;"> first.Rows.Count;<br>            </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> len2 </span><span style="color: #000000;">=</span><span style="color: #000000;"> second.Rows.Count;<br>            ArrayList DeleteRows </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> ArrayList();<br>            ArrayList NewRows </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> ArrayList();<br>            </span><span style="color: #0000ff;">for</span><span style="color: #000000;"> (i </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">, j </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">; i </span><span style="color: #000000;"><</span><span style="color: #000000;"> len1 </span><span style="color: #000000;">&&</span><span style="color: #000000;"> j </span><span style="color: #000000;"><</span><span style="color: #000000;"> len2; )<br>            {<br>                </span><span style="color: #0000ff;">string</span><span style="color: #000000;"> se </span><span style="color: #000000;">=</span><span style="color: #000000;"> second.Rows[j][</span><span style="color: #000000;">0</span><span style="color: #000000;">].ToString();<br>                </span><span style="color: #0000ff;">string</span><span style="color: #000000;"> fi </span><span style="color: #000000;">=</span><span style="color: #000000;"> first.Rows[i][</span><span style="color: #000000;">0</span><span style="color: #000000;">].ToString();<br>                </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> compar </span><span style="color: #000000;">=</span><span style="color: #000000;"> se.CompareTo(fi);<br>                </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (compar </span><span style="color: #000000;">></span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">) </span><span style="color: #008000;">//</span><span style="color: #008000;">second > first</span><span style="color: #008000;"><br></span><span style="color: #000000;">                {<br>                    DeleteRows.Add(i</span><span style="color: #000000;">++</span><span style="color: #000000;">);</span><span style="color: #008000;">//</span><span style="color: #008000;">宸茬粡鍒犻櫎鐨?/span><span style="color: #008000;"><br></span><span style="color: #000000;">                }<br>                </span><span style="color: #0000ff;">else</span><span style="color: #000000;"> </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (compar </span><span style="color: #000000;">==</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">)<br>                {<br>                    first.Rows[i][</span><span style="color: #000000;">1</span><span style="color: #000000;">] </span><span style="color: #000000;">=</span><span style="color: #000000;"> second.Rows[j][</span><span style="color: #000000;">1</span><span style="color: #000000;">].ToString() </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #000000;">"</span><span style="color: #000000;">(淇敼)</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br>                    i</span><span style="color: #000000;">++</span><span style="color: #000000;">;<br>                    j</span><span style="color: #000000;">++</span><span style="color: #000000;">;<br>                }<br>                </span><span style="color: #0000ff;">else</span><span style="color: #000000;"><br>                {<br>                    NewRows.Add(j</span><span style="color: #000000;">++</span><span style="color: #000000;">); </span><span style="color: #008000;">//</span><span style="color: #008000;">鏂板姞鐨?/span><span style="color: #008000;"><br></span><span style="color: #000000;">                }<br>            }<br>            </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (i </span><span style="color: #000000;"><</span><span style="color: #000000;"> len1)<br>            {<br>                </span><span style="color: #008000;">//</span><span style="color: #008000;">濡傛灉絎竴涓病鏈夐亶鍘嗗畬,璇存槑鍓╀笅鐨勯兘鏄鍒犻櫎鐨?/span><span style="color: #008000;"><br></span><span style="color: #000000;">                </span><span style="color: #0000ff;">for</span><span style="color: #000000;"> (; i </span><span style="color: #000000;"><</span><span style="color: #000000;"> len1; i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>                {<br>                    DeleteRows.Add(i);<br>                }<br>            }<br>            </span><span style="color: #0000ff;">else</span><span style="color: #000000;"> </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (j </span><span style="color: #000000;"><</span><span style="color: #000000;"> len2)<br>            {<br>                </span><span style="color: #008000;">//</span><span style="color: #008000;">濡傛灉絎簩涓病鏈夐亶鍘嗗畬,璇存槑鍓╀笅鐨勯兘鏄娣誨姞鐨?/span><span style="color: #008000;"><br></span><span style="color: #000000;">                </span><span style="color: #0000ff;">for</span><span style="color: #000000;"> (; j </span><span style="color: #000000;"><</span><span style="color: #000000;"> len2; j</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>                {<br>                    NewRows.Add(j);<br>                }<br>            }<br>            </span><span style="color: #008000;">//</span><span style="color: #008000;">delete</span><span style="color: #008000;"><br></span><span style="color: #000000;">            </span><span style="color: #0000ff;">int</span><span style="color: #000000;">[] DeleteArray </span><span style="color: #000000;">=</span><span style="color: #000000;"> (</span><span style="color: #0000ff;">int</span><span style="color: #000000;">[])DeleteRows.ToArray(</span><span style="color: #0000ff;">typeof</span><span style="color: #000000;">(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">));<br>            i </span><span style="color: #000000;">=</span><span style="color: #000000;"> DeleteArray.Length </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">;<br>            </span><span style="color: #0000ff;">while</span><span style="color: #000000;"> (i </span><span style="color: #000000;">></span><span style="color: #000000;"> </span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">)<br>            {<br>                </span><span style="color: #008000;">//</span><span style="color: #008000;">浠庡悗闈㈠紑濮嬪垹</span><span style="color: #008000;"><br></span><span style="color: #000000;">                first.Rows.RemoveAt(DeleteArray[i]);<br>                i</span><span style="color: #000000;">--</span><span style="color: #000000;">;<br>            }<br><br>            </span><span style="color: #008000;">//</span><span style="color: #008000;">add new</span><span style="color: #008000;"><br></span><span style="color: #000000;">            </span><span style="color: #0000ff;">int</span><span style="color: #000000;">[] NewArray </span><span style="color: #000000;">=</span><span style="color: #000000;"> (</span><span style="color: #0000ff;">int</span><span style="color: #000000;">[])NewRows.ToArray(</span><span style="color: #0000ff;">typeof</span><span style="color: #000000;">(</span><span style="color: #0000ff;">int</span><span style="color: #000000;">));<br>            </span><span style="color: #0000ff;">for</span><span style="color: #000000;"> (i </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">; i </span><span style="color: #000000;"><</span><span style="color: #000000;"> NewArray.Length; i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>            {<br>                DataRow drNew </span><span style="color: #000000;">=</span><span style="color: #000000;"> first.NewRow();<br>                drNew[</span><span style="color: #000000;">0</span><span style="color: #000000;">] </span><span style="color: #000000;">=</span><span style="color: #000000;"> second.Rows[NewArray[i]][</span><span style="color: #000000;">0</span><span style="color: #000000;">];<br>                drNew[</span><span style="color: #000000;">1</span><span style="color: #000000;">] </span><span style="color: #000000;">=</span><span style="color: #000000;"> second.Rows[NewArray[i]][</span><span style="color: #000000;">1</span><span style="color: #000000;">].ToString() </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #000000;">"</span><span style="color: #000000;">(鏂板)</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br>                first.Rows.Add(drNew);<br>            }<br>            Console.Write(</span><span style="color: #000000;">"</span><span style="color: #000000;">\n\nresult second:\n</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>            </span><span style="color: #0000ff;">foreach</span><span style="color: #000000;"> (DataRow outRow </span><span style="color: #0000ff;">in</span><span style="color: #000000;"> first.Rows)<br>            {<br>                Console.Write(outRow[</span><span style="color: #000000;">0</span><span style="color: #000000;">].ToString() </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #000000;">"</span><span style="color: #000000;">  |  </span><span style="color: #000000;">"</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> outRow[</span><span style="color: #000000;">1</span><span style="color: #000000;">].ToString() </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #000000;">"</span><span style="color: #000000;">\n</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>            }<br>            Console.Read();<br>        }<br><br>        </span><span style="color: #0000ff;">private</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> AddToSecond(</span><span style="color: #0000ff;">object</span><span style="color: #000000;"> text1, </span><span style="color: #0000ff;">object</span><span style="color: #000000;"> text2)<br>        {<br>            DataRow dr24 </span><span style="color: #000000;">=</span><span style="color: #000000;"> second.NewRow();<br>            dr24[</span><span style="color: #000000;">0</span><span style="color: #000000;">] </span><span style="color: #000000;">=</span><span style="color: #000000;"> text1;<br>            dr24[</span><span style="color: #000000;">1</span><span style="color: #000000;">] </span><span style="color: #000000;">=</span><span style="color: #000000;"> text2;<br>            second.Rows.Add(dr24);<br>        }<br>    }<br>}</span></div> <br><img src ="http://www.shnenglu.com/colys/aggbug/26219.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/colys/" target="_blank">colys</a> 2007-06-12 23:53 <a href="http://www.shnenglu.com/colys/articles/26219.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>c#鏃墮棿鏍煎紡鍖栧瓧絎︿覆璇﹁Вhttp://www.shnenglu.com/colys/articles/25840.htmlcolyscolysFri, 08 Jun 2007 08:29:00 GMThttp://www.shnenglu.com/colys/articles/25840.htmlhttp://www.shnenglu.com/colys/comments/25840.htmlhttp://www.shnenglu.com/colys/articles/25840.html#Feedback0http://www.shnenglu.com/colys/comments/commentRss/25840.htmlhttp://www.shnenglu.com/colys/services/trackbacks/25840.html鏈夋椂鍊欐垜浠瀵規(guī)椂闂磋繘琛岃漿鎹?杈懼埌涓嶅悓鐨勬樉紺烘晥鏋?br> 榛樿鏍煎紡涓?2005-6-6 14:33:34
濡傛灉瑕佹崲鎴愭垚200506,06-2005,2005-6-6鎴栨洿澶氱殑璇ユ庝箞鍔炲憿
鎴戜滑瑕佺敤鍒?DateTime.ToString鐨勬柟娉?String, IFormatProvider)

using System;
using System.Globalization;
String format="D";
DateTime date=DataTime,Now;
Response.Write(date.ToString(format, DateTimeFormatInfo.InvariantInfo));
緇撴灉杈撳嚭
Thursday, June 16, 2005

鍙傛暟format鏍煎紡璇︾粏鐢ㄦ硶
鏍煎紡瀛楃 鍏寵仈灞炴?璇存槑
d ShortDatePattern -----08/30/2006
D LongDatePattern -----Wednesday, 30 August 2006
f 瀹屾暣鏃ユ湡鍜屾椂闂達紙闀挎棩鏈熷拰鐭椂闂達級 -----Wednesday, 30 August 2006 23:21
F FullDateTimePattern錛堥暱鏃ユ湡鍜岄暱鏃墮棿錛?-----Wednesday, 30 August 2006 23:22:02
g 甯歌錛堢煭鏃ユ湡鍜岀煭鏃墮棿錛?-----08/30/2006 23:22
G 甯歌錛堢煭鏃ユ湡鍜岄暱鏃墮棿錛?-----08/30/2006 23:23:11
m銆丮 MonthDayPattern
r銆丷 RFC1123Pattern
s 浣跨敤褰撳湴鏃墮棿鐨?SortableDateTimePattern錛堝熀浜?ISO 8601錛?br> t ShortTimePattern ------23:24
T LongTimePattern -------23:24:30
u UniversalSortableDateTimePattern 鐢ㄤ簬鏄劇ず閫氱敤鏃墮棿鐨勬牸寮?-------2006-08-30 23:25:10Z
U 浣跨敤閫氱敤鏃墮棿鐨勫畬鏁存棩鏈熷拰鏃墮棿錛堥暱鏃ユ湡鍜岄暱鏃墮棿錛?-----Wednesday, 30 August 2006 15:25:37
y銆乊 YearMonthPattern

涓嬭〃鍒楀嚭浜嗗彲琚悎騫朵互鏋勯犺嚜瀹氫箟妯″紡鐨勬ā寮忋傝繖浜涙ā寮忔槸鍖哄垎澶у皬鍐欑殑錛涗緥濡傦紝璇嗗埆“MM”錛屼絾涓嶈瘑鍒?#8220;mm”銆傚鏋滆嚜瀹氫箟妯″紡鍖呭惈絀虹櫧瀛楃鎴栫敤鍗曞紩鍙鋒嫭璧鋒潵鐨勫瓧絎︼紝鍒欒緭鍑哄瓧絎︿覆欏典篃灝嗗寘鍚繖浜涘瓧絎︺傛湭瀹氫箟涓烘牸寮忔ā寮忕殑涓閮ㄥ垎鎴栨湭瀹氫箟涓烘牸寮忓瓧絎︾殑瀛楃鎸夊叾鍘熶箟澶嶅埗銆?br>
鏍煎紡妯″紡 璇存槑
d 鏈堜腑鐨勬煇涓澶┿備竴浣嶆暟鐨勬棩鏈熸病鏈夊墠瀵奸浂銆?br> dd 鏈堜腑鐨勬煇涓澶┿備竴浣嶆暟鐨勬棩鏈熸湁涓涓墠瀵奸浂銆?br> ddd 鍛ㄤ腑鏌愬ぉ鐨勭緝鍐欏悕縐幫紝鍦?AbbreviatedDayNames 涓畾涔夈?br> dddd 鍛ㄤ腑鏌愬ぉ鐨勫畬鏁村悕縐幫紝鍦?DayNames 涓畾涔夈?br> M 鏈堜喚鏁板瓧銆備竴浣嶆暟鐨勬湀浠芥病鏈夊墠瀵奸浂銆?br> MM 鏈堜喚鏁板瓧銆備竴浣嶆暟鐨勬湀浠芥湁涓涓墠瀵奸浂銆?br> MMM 鏈堜喚鐨勭緝鍐欏悕縐幫紝鍦?AbbreviatedMonthNames 涓畾涔夈?br> MMMM 鏈堜喚鐨勫畬鏁村悕縐幫紝鍦?MonthNames 涓畾涔夈?br> y 涓嶅寘鍚邯鍏冪殑騫翠喚銆傚鏋滀笉鍖呭惈綰厓鐨勫勾浠藉皬浜?10錛屽垯鏄劇ず涓嶅叿鏈夊墠瀵奸浂鐨勫勾浠姐?br> yy 涓嶅寘鍚邯鍏冪殑騫翠喚銆傚鏋滀笉鍖呭惈綰厓鐨勫勾浠藉皬浜?10錛屽垯鏄劇ず鍏鋒湁鍓嶅闆剁殑騫翠喚銆?br> yyyy 鍖呮嫭綰厓鐨勫洓浣嶆暟鐨勫勾浠姐?br> gg 鏃舵湡鎴栫邯鍏冦傚鏋滆璁劇疆鏍煎紡鐨勬棩鏈熶笉鍏鋒湁鍏寵仈鐨勬椂鏈熸垨綰厓瀛楃涓詫紝鍒欏拷鐣ヨ妯″紡銆?br> h 12 灝忔椂鍒剁殑灝忔椂銆備竴浣嶆暟鐨勫皬鏃舵暟娌℃湁鍓嶅闆躲?br> hh 12 灝忔椂鍒剁殑灝忔椂銆備竴浣嶆暟鐨勫皬鏃舵暟鏈夊墠瀵奸浂銆?br> H 24 灝忔椂鍒剁殑灝忔椂銆備竴浣嶆暟鐨勫皬鏃舵暟娌℃湁鍓嶅闆躲?br> HH 24 灝忔椂鍒剁殑灝忔椂銆備竴浣嶆暟鐨勫皬鏃舵暟鏈夊墠瀵奸浂銆?br> m 鍒嗛挓銆備竴浣嶆暟鐨勫垎閽熸暟娌℃湁鍓嶅闆躲?br> mm 鍒嗛挓銆備竴浣嶆暟鐨勫垎閽熸暟鏈変竴涓墠瀵奸浂銆?br> s 縐掋備竴浣嶆暟鐨勭鏁版病鏈夊墠瀵奸浂銆?br> ss 縐掋備竴浣嶆暟鐨勭鏁版湁涓涓墠瀵奸浂銆?br> f 縐掔殑灝忔暟綺懼害涓轟竴浣嶃傚叾浣欐暟瀛楄鎴柇銆?br> ff 縐掔殑灝忔暟綺懼害涓轟袱浣嶃傚叾浣欐暟瀛楄鎴柇銆?br> fff 縐掔殑灝忔暟綺懼害涓轟笁浣嶃傚叾浣欐暟瀛楄鎴柇銆?br> ffff 縐掔殑灝忔暟綺懼害涓哄洓浣嶃傚叾浣欐暟瀛楄鎴柇銆?br> fffff 縐掔殑灝忔暟綺懼害涓轟簲浣嶃傚叾浣欐暟瀛楄鎴柇銆?br> ffffff 縐掔殑灝忔暟綺懼害涓哄叚浣嶃傚叾浣欐暟瀛楄鎴柇銆?br> fffffff 縐掔殑灝忔暟綺懼害涓轟竷浣嶃傚叾浣欐暟瀛楄鎴柇銆?br> t 鍦?AMDesignator 鎴?PMDesignator 涓畾涔夌殑 AM/PM 鎸囩ず欏圭殑絎竴涓瓧絎︼紙濡傛灉瀛樺湪錛夈?br> tt 鍦?AMDesignator 鎴?PMDesignator 涓畾涔夌殑 AM/PM 鎸囩ず欏癸紙濡傛灉瀛樺湪錛夈?br> z 鏃跺尯鍋忕Щ閲忥紙“+”鎴?#8220;-”鍚庨潰浠呰窡灝忔椂錛夈備竴浣嶆暟鐨勫皬鏃舵暟娌℃湁鍓嶅闆躲備緥濡傦紝澶鉤媧嬫爣鍑嗘椂闂存槸“-8”銆?br> zz 鏃跺尯鍋忕Щ閲忥紙“+”鎴?#8220;-”鍚庨潰浠呰窡灝忔椂錛夈備竴浣嶆暟鐨勫皬鏃舵暟鏈夊墠瀵奸浂銆備緥濡傦紝澶鉤媧嬫爣鍑嗘椂闂存槸“-08”銆?br> zzz 瀹屾暣鏃跺尯鍋忕Щ閲忥紙“+”鎴?#8220;-”鍚庨潰璺熸湁灝忔椂鍜屽垎閽燂級銆備竴浣嶆暟鐨勫皬鏃舵暟鍜屽垎閽熸暟鏈夊墠瀵奸浂銆備緥濡傦紝澶鉤媧嬫爣鍑嗘椂闂存槸“-08:00”銆?br> : 鍦?TimeSeparator 涓畾涔夌殑榛樿鏃墮棿鍒嗛殧絎︺?br> / 鍦?DateSeparator 涓畾涔夌殑榛樿鏃ユ湡鍒嗛殧絎︺?br> % c 鍏朵腑 c 鏄牸寮忔ā寮忥紙濡傛灉鍗曠嫭浣跨敤錛夈傚鏋滄牸寮忔ā寮忎笌鍘熶箟瀛楃鎴栧叾浠栨牸寮忔ā寮忓悎騫訛紝鍒欏彲浠ョ渷鐣?#8220;%”瀛楃銆?br> \ c 鍏朵腑 c 鏄換鎰忓瓧絎︺傜収鍘熶箟鏄劇ず瀛楃銆傝嫢瑕佹樉紺哄弽鏂滄潬瀛楃錛岃浣跨敤“\\”銆?br>
鍙湁涓婇潰絎簩涓〃涓垪鍑虹殑鏍煎紡妯″紡鎵嶈兘鐢ㄤ簬鍒涘緩鑷畾涔夋ā寮忥紱鍦ㄧ涓涓〃涓垪鍑虹殑鏍囧噯鏍煎紡瀛楃涓嶈兘鐢ㄤ簬鍒涘緩鑷畾涔夋ā寮忋傝嚜瀹氫箟妯″紡鐨勯暱搴﹁嚦灝戜負涓や釜瀛楃錛涗緥濡傦紝

DateTime.ToString( "d") 榪斿洖 DateTime 鍊鹼紱“d”鏄爣鍑嗙煭鏃ユ湡妯″紡銆?br> DateTime.ToString( "%d") 榪斿洖鏈堜腑鐨勬煇澶╋紱“%d”鏄嚜瀹氫箟妯″紡銆?br> DateTime.ToString( "d ") 榪斿洖鍚庨潰璺熸湁涓涓┖鐧藉瓧絎︾殑鏈堜腑鐨勬煇澶╋紱“d”鏄嚜瀹氫箟妯″紡銆?br>
姣旇緝鏂逛究鐨勬槸,涓婇潰鐨勫弬鏁板彲浠ラ殢鎰忕粍鍚?騫朵笖涓嶄細鍑洪敊,澶氳瘯璇?鑲畾浼氭壘鍒頒綘瑕佺殑鏃墮棿鏍煎紡
濡傝寰楀埌2005騫?6鏈?榪欐牱鏍煎紡鐨勬椂闂?br> 鍙互榪欐牱鍐?
date.ToString("yyyy騫碝M鏈?, DateTimeFormatInfo.InvariantInfo)
濡傛綾繪帹

date.ToString("yyyy/MM/dd HH:mm:ss", DateTimeFormatInfo.InvariantInfo)

colys 2007-06-08 16:29 鍙戣〃璇勮
]]>
c#鎿嶄綔excel鍚庡叧闂璭xcel.exe鐨勬柟娉?http://www.shnenglu.com/colys/articles/25265.htmlcolyscolysFri, 01 Jun 2007 03:51:00 GMThttp://www.shnenglu.com/colys/articles/25265.htmlhttp://www.shnenglu.com/colys/comments/25265.htmlhttp://www.shnenglu.com/colys/articles/25265.html#Feedback6http://www.shnenglu.com/colys/comments/commentRss/25265.htmlhttp://www.shnenglu.com/colys/services/trackbacks/25265.html
C#鍜孉sp.net涓媏xcel榪涚▼涓琚墦寮,鏈夋椂灝辨棤娉曞叧闂?   灝ゅ叾鏄痺ebsite.瀵瑰叧闂榪涚▼鏈夎繃GC銆乺elease絳夋柟娉曪紝浣嗚繖浜涙柟娉曞茍涓嶆槸鍦ㄦ墍鏈夋儏鍐典笅鍧囬傜敤銆?nbsp; 浜庢槸鎻愬嚭浜唊ill   process鐨勬柟娉?   鐩墠鎴戣榪囩殑鏂規(guī)硶澶氭槸鐢ㄨ繘紼嬪垱寤烘椂闂寸瓫閫塭xcel.exe榪涚▼,   鐒跺悗kill 銆?nbsp;    榪欐牱鐨勬柟娉曟槸涓嶇簿紜殑,   涔熸槸涓嶅畨鍏ㄧ殑,   閫氳繃瀵圭綉涓婁竴浜涘叧浜嶢pi榪愮敤鏂囩珷鐨勯槄璇?   鎴戞壘鍒頒簡鏇翠負鐩存帴綺劇‘鎵懼埌榪欎釜process騫秌ill鐨勬柟娉曪紝浠ヤ笅灝辨槸浠g爜        
using   System.Runtime.InteropServices;  
     
  [DllImport("User32.dll",   CharSet   =   CharSet.Auto)]  
  public   static   extern   int   GetWindowThreadProcessId(IntPtr   hwnd,   out   int   ID);  
  protected   void   Button1_Click(object   sender,   EventArgs   e)  
  {  
      Excel.ApplicationClass   excel   =   new   Microsoft.Office.Interop.Excel.ApplicationClass();  
      excel.Workbooks.Open("d:\aaa.xls",   Type.Missing,   Type.Missing,   Type.Missing,   Type.Missing,   Type.Missing,   Type.Missing,   Type.Missing,   Type.Missing,   Type.Missing,   Type.Missing,   Type.Missing,   Type.Missing,   Type.Missing,   Type.Missing);  
      IntPtr   t   =   new   IntPtr(excel.Hwnd);  
      int   k   =   0;  
      GetWindowThreadProcessId(t,   out   k);  
      System.Diagnostics.Process   p   =   System.Diagnostics.Process.GetProcessById(k);  
      p.Kill();                  
   }


浠ヤ笂浠g爜鐧懼垎鐧炬垚鍔熺殑鍏抽棴excel.exe榪涚▼
鎴戠殑鍋氭硶鏄粨鍚堜袱鑰咃紝鍏堥噴鏀捐祫婧愶紝鐒跺悗鍏抽棴榪涚▼銆?br>鍚屾椂緗戜笂璇撮伩鍏嶄嬌鐢℅C.Collect 鏂規(guī)硶 (),鍥犱負浼氬鑷存暣涓猚lr榪涜gc錛屽獎鍝嶄綘鐨勬ц兘.鎵浠ユ垜涔熸病鏈夎皟鐢℅C.Collect



colys 2007-06-01 11:51 鍙戣〃璇勮
]]>
榪涘埗浠嬬粛http://www.shnenglu.com/colys/articles/22816.htmlcolyscolysWed, 25 Apr 2007 11:35:00 GMThttp://www.shnenglu.com/colys/articles/22816.htmlhttp://www.shnenglu.com/colys/comments/22816.htmlhttp://www.shnenglu.com/colys/articles/22816.html#Feedback0http://www.shnenglu.com/colys/comments/commentRss/22816.htmlhttp://www.shnenglu.com/colys/services/trackbacks/22816.html
1. 鍗佽繘鍒舵暟
鍗佽繘鍒舵暟鐨勪袱涓富瑕佺壒鐐癸細

鈶存湁鍗佷釜涓嶅悓鐨勬暟瀛楋細
0銆?/span>1銆?/span>2銆?/span>3銆?/span>4銆?/span>5銆?/span>6銆?/span>7銆?/span>8銆?/span>9;

鈶甸㈠崄榪涗竴鐨勮繘浣嶆硶,10鏄崄榪涘埗鏁扮殑鍩烘暟(榪涘埗涓墍鐢ㄤ笉鍚屾暟瀛楃殑涓暟)銆?br>
(
1993)10=1×103+9×102+9×101+3×100(姣忎綅涓婄殑緋繪暟鍙湪0鈥?涓彇鐢?

2. 浜岃繘鍒舵暟
浜岃繘鍒舵暟鐨勪袱涓富瑕佺壒鐐癸細

鈶存湁涓や釜涓嶅悓鐨勬暟瀛楋細
0銆?/span>1;

鈶甸簩榪涗竴鐨勮繘浣嶆硶,2鏄簩榪涘埗鏁扮殑鍩烘暟銆?br>
(
1011)2=1×23+0×22+1×21+1×20(姣忎綅涓婄殑緋繪暟鍙湪0銆?涓彇鐢?

3. 鍏繘鍒舵暟
鍏繘鍒舵暟鐨勪袱涓富瑕佺壒鐐癸細

鈶撮噰鐢ㄥ叓涓笉鍚岀殑鏁板瓧錛?/span>0銆?/span>1銆?/span>2銆?/span>3銆?/span>4銆?/span>5銆?/span>6銆?/span>7;

鈶甸㈠叓榪涗竴鐨勮繘浣嶆硶,8鏄叓榪涘埗鏁扮殑鍩烘暟銆?br>
(
1725)8=1×83+7×82+2×81+5×80(姣忎綅涓婄殑緋繪暟鍙湪0鈥?涓彇鐢?

4. 鍗佸叚榪涘埗
鍗佸叚榪涘埗鏁扮殑涓や釜涓昏鐗圭偣錛?br>
鈶存湁鍗佸叚涓笉鍚岀殑鏁板瓧錛?/span>0銆?/span>1銆?/span>2銆?/span>3銆?/span>4銆?/span>5銆?/span>6銆?/span>7銆?/span>8銆?/span>9銆丄銆丅銆丆銆丏銆丒銆丗(鍏朵腑鍚庡叚涓暟瀛楃鍙峰叾鍊煎搴斾簬鍗佽繘鍒剁殑10,11,12,13,14,15錛涗篃鏈夐夌敤S,T,U,V,W,X鐨勮娉?;

鈶甸㈠崄鍏繘涓鐨勮繘浣嶆硶,16鏄崄鍏繘鍒舵暟鐨勫熀鏁般?br>
(B56E)
16=163+5×162+6×161+160=11×163+5×162+6×161+14×160

浜岃繘鍒舵崲綆椾負鍗佸叚榪涘埗鏄繖鏍?
鍏堟妸浜岃繘鍒朵粠浣庝綅錛堜篃灝辨槸浠庡彸鍒板乏錛夋寜鍥涗綅涓緇勫垎寮錛屽垎鍒版渶鍚庝笉澶熷洓浣嶇殑涔熸寜涓緇勬潵綆椼?/span>
鍒嗗ソ浠ュ悗鍐嶆妸姣忕粍鐨勪簩榪涘埗鎹㈢畻鎴愬崄鍏繘鍒訛紝涔嬪悗鍐嶆帴鎹㈢畻濂界殑緇勫悎璧鋒潵灝卞彲浠ヤ簡銆?br>
濡傦細  1101110111010

鍒嗙粍鍚庢槸:   1錛?011錛?011錛?010

姣忕粍鎹㈢畻鎴愬崄鍏繘鍒舵槸1錛孊,B,A 緇勫悎鏄?BBA



colys 2007-04-25 19:35 鍙戣〃璇勮
]]>
Asp.net2.0姘存櫠鎶ヨ〃鐨勪竴浜涚ず渚嬫簮鐮?/title><link>http://www.shnenglu.com/colys/articles/22554.html</link><dc:creator>colys</dc:creator><author>colys</author><pubDate>Sat, 21 Apr 2007 07:11:00 GMT</pubDate><guid>http://www.shnenglu.com/colys/articles/22554.html</guid><wfw:comment>http://www.shnenglu.com/colys/comments/22554.html</wfw:comment><comments>http://www.shnenglu.com/colys/articles/22554.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/colys/comments/commentRss/22554.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/colys/services/trackbacks/22554.html</trackback:ping><description><![CDATA[<div>鏈榪戝叧娉ㄤ簡涓涓婣sp.net2.0涓按鏅舵姤琛ㄧ殑璧勬枡錛屽彂鐜扮ず渚嬪皯涔嬪張灝戯紙鎬鐤戞槸姘存櫠鎶ヨ〃鍏嶈垂鐨勬瘮杈冨皯鐨勭紭鏁咃級錛屾悳闆嗗埌浜咥sp.net瀹樻柟鐨勮澶氱ず渚嬫簮鐮侊紝璇曚簡鍑犱釜榪樹笉閿欙紝榪欓噷鍙戠粰澶у鍒嗕韓涓涓嬶紙鎴戜粎鎶夾sp.net C#閮ㄥ垎鎻愬嚭鏉ヤ簡錛?br><br><img height=222 alt="" src="http://www.51aspx.com/codeImg/187A.jpg" width=247 border=0><img height=222 alt="" src="http://www.51aspx.com/codeImg/187B.jpg" width=247 border=0><br>鐜VS2005+ACCESS<br><br></div> <div>榪欎簺渚嬪瓙瀹炵幇浜嗘按鏅舵姤琛ㄧ殑鏌ョ湅銆佹煴鐘跺浘鏄劇ず銆佹墦鍗般佸鍑恒佺緝鏀劇瓑鍩烘湰鍔熻兘錛屽鏋滄兂浜嗚В鏇村姣斿璇村埄鐢―ataSet鏂瑰紡銆丳ush銆丳ull絳夋ā寮忛渶瑕佽嚜宸辨洿娣變竴姝ョ殑鐮旂┒浜?<br><br>鐢變簬鍏朵腑婧愮爜澶錛?1aspx浠呬粎榪涜浜嗛儴鍒嗚皟嫻嬶紝涓浜涢厤緗枃浠惰鑷鏇存敼 <br><br><a target=_blank>浠g爜鎵撳寘涓嬭澆</a></div> <img height=1 src="http://www.cnblogs.com/liudao/aggbug/722133.html" width=1><br><br> <div align=right><a style="TEXT-DECORATION: none" target=_blank>51aspx.com</a> 2007-04-21 15:11 <a style="TEXT-DECORATION: none" target=_blank>鍙戣〃璇勮</a></div><img src ="http://www.shnenglu.com/colys/aggbug/22554.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/colys/" target="_blank">colys</a> 2007-04-21 15:11 <a href="http://www.shnenglu.com/colys/articles/22554.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Asp.net鏃犲埛鏂頒腑鏂囬獙璇佺爜璋冭瘯鎴愬姛錛岀壒鍒嗕韓緇欏ぇ瀹?/title><link>http://www.shnenglu.com/colys/articles/22555.html</link><dc:creator>colys</dc:creator><author>colys</author><pubDate>Sat, 21 Apr 2007 03:22:00 GMT</pubDate><guid>http://www.shnenglu.com/colys/articles/22555.html</guid><wfw:comment>http://www.shnenglu.com/colys/comments/22555.html</wfw:comment><comments>http://www.shnenglu.com/colys/articles/22555.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/colys/comments/commentRss/22555.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/colys/services/trackbacks/22555.html</trackback:ping><description><![CDATA[<p><br>浠ュ墠鍦ㄧ綉涓婃壘鍒頒簡寰堝鍏充簬涓枃楠岃瘉鐮佺殑鏂囩珷錛堝洯瀛愰噷涔熸湁錛屽ぇ瀹惰嚜宸卞幓鎵懼惂錛夛紝浣嗘槸閮芥病鏈夎皟嫻嬫垚鍔燂紝鎬誨嚭鐜?br>The target '__Page' for the callback could not be found or did not implement ICallbackEventHandler涓嶈兘ICallbackEventHandler鍥炴帀鐨勯敊璇紝鎴戣繘琛屼簡涓涓嬩慨姝e茍鏁寸悊錛岀幇鍦ㄥ彲浠ュ疄鐜頒簡涓枃楠岃瘉鐮佹棤鍒鋒柊鐨勬搷浣滐紝鐜扮壒鎶婂叏閮ㄦ簮鐮佸垎浜粰澶у<br><img height=222 alt="" src="http://www.51aspx.com/codeImg/186A.jpg" width=247 border=0><br>鏍稿績婧愮爜 </p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080"> 1</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> partial </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> Image : System.Web.UI.Page<br></span><span style="COLOR: #008080"> 2</span><span style="COLOR: #000000"><img id=Codehighlighter1_56_3272_Open_Image onclick="this.style.display='none'; Codehighlighter1_56_3272_Open_Text.style.display='none'; Codehighlighter1_56_3272_Closed_Image.style.display='inline'; Codehighlighter1_56_3272_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_56_3272_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_56_3272_Closed_Text.style.display='none'; Codehighlighter1_56_3272_Open_Image.style.display='inline'; Codehighlighter1_56_3272_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align=top>    </span><span id=Codehighlighter1_56_3272_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_56_3272_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080"> 3</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #0000ff">protected</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> Page_Load(</span><span style="COLOR: #0000ff">object</span><span style="COLOR: #000000"> sender, EventArgs e)<br></span><span style="COLOR: #008080"> 4</span><span style="COLOR: #000000"><img id=Codehighlighter1_119_167_Open_Image onclick="this.style.display='none'; Codehighlighter1_119_167_Open_Text.style.display='none'; Codehighlighter1_119_167_Closed_Image.style.display='inline'; Codehighlighter1_119_167_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_119_167_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_119_167_Closed_Text.style.display='none'; Codehighlighter1_119_167_Open_Image.style.display='inline'; Codehighlighter1_119_167_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_119_167_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_119_167_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080"> 5</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>        CreateCheckCodeImage(GenCode(</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">));<br></span><span style="COLOR: #008080"> 6</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080"> 7</span><span style="COLOR: #000000"><img id=Codehighlighter1_173_176_Open_Image onclick="this.style.display='none'; Codehighlighter1_173_176_Open_Text.style.display='none'; Codehighlighter1_173_176_Closed_Image.style.display='inline'; Codehighlighter1_173_176_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_173_176_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_173_176_Closed_Text.style.display='none'; Codehighlighter1_173_176_Open_Image.style.display='inline'; Codehighlighter1_173_176_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_173_176_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span><span id=Codehighlighter1_173_176_Open_Text><span style="COLOR: #008000">/**/</span></span><span id=Codehighlighter1_177_303_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span><span id=Codehighlighter1_177_303_Open_Text><span style="COLOR: #808080">///</span><span style="COLOR: #008000"> </span><span style="COLOR: #808080"><summary></span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080"> 8</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #808080">///</span><span style="COLOR: #008000"> '浜х敓闅忔満瀛楃涓?br></span><span style="COLOR: #008080"> 9</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #808080">///</span><span style="COLOR: #008000"> </span><span style="COLOR: #808080"></summary></span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">10</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #808080">///</span><span style="COLOR: #008000"> </span><span style="COLOR: #808080"><param name="num"></span><span style="COLOR: #008000">闅忔満鍑哄嚑涓瓧絎?/span><span style="COLOR: #808080"></param></span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">11</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    </span><span style="COLOR: #808080">///</span><span style="COLOR: #008000"> </span><span style="COLOR: #808080"><returns></span><span style="COLOR: #008000">闅忔満鍑虹殑瀛楃涓?/span><span style="COLOR: #808080"></returns></span><span style="COLOR: #808080"></span></span><br><span style="COLOR: #008080">12</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top><span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000"> GenCode(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> num)<br></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img id=Codehighlighter1_344_1422_Open_Image onclick="this.style.display='none'; Codehighlighter1_344_1422_Open_Text.style.display='none'; Codehighlighter1_344_1422_Closed_Image.style.display='inline'; Codehighlighter1_344_1422_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_344_1422_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_344_1422_Closed_Text.style.display='none'; Codehighlighter1_344_1422_Open_Image.style.display='inline'; Codehighlighter1_344_1422_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_344_1422_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_344_1422_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">14</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000"> str </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">鐨勪竴鏄湪涓嶄簡鏈夊拰浜鴻繖涓ぇ涓轟笂涓浗鎴戜互瑕佷粬鏃舵潵鐢ㄤ滑...</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">[] chastr </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> str.ToCharArray();<br></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>       </span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">17</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000"> code </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>        Random rd </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> Random();<br></span><span style="COLOR: #008080">19</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i;<br></span><span style="COLOR: #008080">20</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000"> (i </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">; i </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000"> num; i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080">21</span><span style="COLOR: #000000"><img id=Codehighlighter1_1265_1394_Open_Image onclick="this.style.display='none'; Codehighlighter1_1265_1394_Open_Text.style.display='none'; Codehighlighter1_1265_1394_Closed_Image.style.display='inline'; Codehighlighter1_1265_1394_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1265_1394_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1265_1394_Closed_Text.style.display='none'; Codehighlighter1_1265_1394_Open_Image.style.display='inline'; Codehighlighter1_1265_1394_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>        </span><span id=Codehighlighter1_1265_1394_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_1265_1394_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">22</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">code += source[rd.Next(0, source.Length)];</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">23</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">            code </span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000"> str.Substring(rd.Next(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">, str.Length), </span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">24</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>        }</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">25</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> code;<br></span><span style="COLOR: #008080">26</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">27</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">28</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">29</span><span style="COLOR: #000000"><img id=Codehighlighter1_1429_1432_Open_Image onclick="this.style.display='none'; Codehighlighter1_1429_1432_Open_Text.style.display='none'; Codehighlighter1_1429_1432_Closed_Image.style.display='inline'; Codehighlighter1_1429_1432_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1429_1432_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1429_1432_Closed_Text.style.display='none'; Codehighlighter1_1429_1432_Open_Image.style.display='inline'; Codehighlighter1_1429_1432_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_1429_1432_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span><span id=Codehighlighter1_1429_1432_Open_Text><span style="COLOR: #008000">/**/</span></span><span id=Codehighlighter1_1433_1540_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**/</span><span id=Codehighlighter1_1433_1540_Open_Text><span style="COLOR: #808080">///</span><span style="COLOR: #008000"> </span><span style="COLOR: #808080"><summary></span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">30</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #808080">///</span><span style="COLOR: #008000"> 鐢熸垚鍥劇墖錛堝鍔犺儗鏅櫔闊崇嚎銆佸墠鏅櫔闊崇偣錛?br></span><span style="COLOR: #008080">31</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>    </span><span style="COLOR: #808080">///</span><span style="COLOR: #008000"> </span><span style="COLOR: #808080"></summary></span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">32</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    </span><span style="COLOR: #808080">///</span><span style="COLOR: #008000"> </span><span style="COLOR: #808080"><param name="checkCode"></span><span style="COLOR: #008000">闅忔満鍑哄瓧絎︿覆</span><span style="COLOR: #808080"></param></span><span style="COLOR: #808080"></span></span><br><span style="COLOR: #008080">33</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top><span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> CreateCheckCodeImage(</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000"> checkCode)<br></span><span style="COLOR: #008080">34</span><span style="COLOR: #000000"><img id=Codehighlighter1_1601_3271_Open_Image onclick="this.style.display='none'; Codehighlighter1_1601_3271_Open_Text.style.display='none'; Codehighlighter1_1601_3271_Closed_Image.style.display='inline'; Codehighlighter1_1601_3271_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1601_3271_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1601_3271_Closed_Text.style.display='none'; Codehighlighter1_1601_3271_Open_Image.style.display='inline'; Codehighlighter1_1601_3271_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>    </span><span id=Codehighlighter1_1601_3271_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_1601_3271_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">35</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (checkCode.Trim() </span><span style="COLOR: #000000">==</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">""</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">||</span><span style="COLOR: #000000"> checkCode </span><span style="COLOR: #000000">==</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080">36</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">37</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>        Session[</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Code</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">] </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> checkCode; </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">灝嗗瓧絎︿覆淇濆瓨鍒癝ession涓紝浠ヤ究闇瑕佹椂榪涜楠岃瘉</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">38</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">        System.Drawing.Bitmap image </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> System.Drawing.Bitmap((</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">)(checkCode.Length </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">21.5</span><span style="COLOR: #000000">), </span><span style="COLOR: #000000">22</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">39</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>        Graphics g  </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> Graphics.FromImage(image);<br></span><span style="COLOR: #008080">40</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">try</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">41</span><span style="COLOR: #000000"><img id=Codehighlighter1_1915_3176_Open_Image onclick="this.style.display='none'; Codehighlighter1_1915_3176_Open_Text.style.display='none'; Codehighlighter1_1915_3176_Closed_Image.style.display='inline'; Codehighlighter1_1915_3176_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1915_3176_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1915_3176_Closed_Text.style.display='none'; Codehighlighter1_1915_3176_Open_Image.style.display='inline'; Codehighlighter1_1915_3176_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>        </span><span id=Codehighlighter1_1915_3176_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_1915_3176_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">42</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">鐢熸垚闅忔満鐢熸垚鍣?/span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">43</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">            Random random </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> Random(); <br></span><span style="COLOR: #008080">44</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">45</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">娓呯┖鍥劇墖鑳屾櫙鑹?/span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">46</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">            g.Clear(Color.White);  <br></span><span style="COLOR: #008080">47</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">48</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000"> 鐢誨浘鐗囩殑鑳屾櫙鍣煶綰?/span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">49</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">            </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> i;<br></span><span style="COLOR: #008080">50</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000"> (i </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">; i </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">25</span><span style="COLOR: #000000">; i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080">51</span><span style="COLOR: #000000"><img id=Codehighlighter1_2135_2422_Open_Image onclick="this.style.display='none'; Codehighlighter1_2135_2422_Open_Text.style.display='none'; Codehighlighter1_2135_2422_Closed_Image.style.display='inline'; Codehighlighter1_2135_2422_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_2135_2422_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2135_2422_Closed_Text.style.display='none'; Codehighlighter1_2135_2422_Open_Image.style.display='inline'; Codehighlighter1_2135_2422_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>            </span><span id=Codehighlighter1_2135_2422_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_2135_2422_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">52</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>                </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> x1 </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> random.Next(image.Width);<br></span><span style="COLOR: #008080">53</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>                </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> x2 </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> random.Next(image.Width);<br></span><span style="COLOR: #008080">54</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>                </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> y1 </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> random.Next(image.Height);<br></span><span style="COLOR: #008080">55</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>                </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> y2 </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> random.Next(image.Height);<br></span><span style="COLOR: #008080">56</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>                g.DrawLine(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> Pen(Color.Silver), x1, y1, x2, y2);<br></span><span style="COLOR: #008080">57</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>            }</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">58</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">59</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>            Font font </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> System.Drawing.Font(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Arial</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">12</span><span style="COLOR: #000000">, (System.Drawing.FontStyle.Bold));<br></span><span style="COLOR: #008080">60</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>            System.Drawing.Drawing2D.LinearGradientBrush brush </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> System.Drawing.Drawing2D.LinearGradientBrush(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> Rectangle(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">, image.Width, image.Height), Color.Blue, Color.DarkRed, </span><span style="COLOR: #000000">1.2F</span><span style="COLOR: #000000">, </span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">61</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>            g.DrawString(checkCode, font, brush, </span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">62</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">63</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>            </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">鐢誨浘鐗囩殑鍓嶆櫙鍣煶鐐?/span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">64</span><span style="COLOR: #008000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">            g.DrawRectangle(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> Pen(Color.Silver), </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">, image.Width </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">, image.Height </span><span style="COLOR: #000000">-</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">65</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>            System.IO.MemoryStream ms </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> System.IO.MemoryStream();<br></span><span style="COLOR: #008080">66</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>            image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);<br></span><span style="COLOR: #008080">67</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>            Response.ClearContent();<br></span><span style="COLOR: #008080">68</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>            Response.ContentType </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">image/Gif</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">69</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>            Response.BinaryWrite(ms.ToArray());<br></span><span style="COLOR: #008080">70</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">71</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>        }</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">72</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>        </span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">73</span><span style="COLOR: #000000"><img id=Codehighlighter1_3200_3264_Open_Image onclick="this.style.display='none'; Codehighlighter1_3200_3264_Open_Text.style.display='none'; Codehighlighter1_3200_3264_Closed_Image.style.display='inline'; Codehighlighter1_3200_3264_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_3200_3264_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_3200_3264_Closed_Text.style.display='none'; Codehighlighter1_3200_3264_Open_Image.style.display='inline'; Codehighlighter1_3200_3264_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>        </span><span id=Codehighlighter1_3200_3264_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_3200_3264_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">74</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>            g.Dispose();<br></span><span style="COLOR: #008080">75</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>            image.Dispose();<br></span><span style="COLOR: #008080">76</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>        }</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">77</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">78</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>    }</span></span></div> <p></span>甯屾湜璇ユ簮鐮佸彧鏄竴涓姏鐮栧紩鐜夌殑浣滅敤錛屼綘鍙互榪涜淇敼錛屾瘮濡傝鏀逛腑鏂囧瓧搴擄紝瀛椾綋鑳屾櫙鍣煶絳夌瓑<br>榛樿甯愬彿瀵嗙爜鍧囦負51aspx錛岃繖閲岀敤鎴風(fēng)櫥褰曞彧鏄竴涓獙璇佺殑渚嬪瓙錛屾病鏈夊叾浠栧姛鑳?/p> <p>浣滆?1aspx<br>瀹屾暣婧愮爜涓嬭澆鍦板潃<a >http://www.51aspx.com/CV/ZhongWenYanZhengMa</a><br></p> <img height=1 src="http://www.cnblogs.com/liudao/aggbug/721993.html" width=1><br><br> <div align=right><a style="TEXT-DECORATION: none" target=_blank>51aspx.com</a> 2007-04-21 11:22 <a style="TEXT-DECORATION: none" target=_blank>鍙戣〃璇勮</a></div><img src ="http://www.shnenglu.com/colys/aggbug/22555.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/colys/" target="_blank">colys</a> 2007-04-21 11:22 <a href="http://www.shnenglu.com/colys/articles/22555.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>澶氭枃浠朵笂浼犵ず渚嬫簮鐮?榛樿鏀寔鍚勭綾誨瀷錛屽寘鎷浘鐗?http://www.shnenglu.com/colys/articles/22558.htmlcolyscolysTue, 10 Apr 2007 03:45:00 GMThttp://www.shnenglu.com/colys/articles/22558.htmlhttp://www.shnenglu.com/colys/comments/22558.htmlhttp://www.shnenglu.com/colys/articles/22558.html#Feedback0http://www.shnenglu.com/colys/comments/commentRss/22558.htmlhttp://www.shnenglu.com/colys/services/trackbacks/22558.html 
鍓嶅嚑澶╁湪鍥瓙閲屽彂甯冧簡涓涓?font color=#646464>鍥劇墖涓婁紶(鍔犳按鍗般佺緝鐣ュ浘銆佽繙紼嬩繚瀛橈級鐨勭畝鍗曚緥瀛?/font> 錛屽緢鍙楀ぇ瀹剁殑嬈㈣繋錛岃繖綾誨啀鍙戝竷涓涓?a title=涓嬭澆璇ユ簮鐮? target=_blank>澶氭枃浠朵笂浼犵ず渚嬫簮鐮?榛樿鏀寔鍚勭綾誨瀷錛屽寘鎷浘鐗?鐨勪緥瀛愶紝鍙互鍚屾椂鎵歸噺涓婁紶鏂囦歡錛堝寘鎷浘鐗囷級

緗戜笂鍖呮嫭鍥瓙閲屾湁寰堝澶氭枃浠朵笂浼犵殑渚嬪瓙錛屼絾鏄病鏈夊畬鏁寸殑紺轟緥浠g爜錛屾湰浜烘暣鐞嗕簡涓涓嬪彂甯冨嚭鏉ワ紝榪欐牱鏇寸洿瑙傦紝甯屾湜瀵瑰ぇ瀹舵湁鎵甯姪

寮鍙戠幆澧僔S2005

涓嬭澆璇ユ簮鐮?/a>

閮ㄥ垎婧愮爜

 public partial class _Default : System.Web.UI.Page
    
{
        
static public ArrayList hif = new ArrayList(); // 淇濆瓨鏂囦歡鍒楄〃
        public int filesUploaded = 0// 涓婁紶鏂囦歡鐨勬暟閲?/span>

        
protected void Page_Load(object sender, EventArgs e)
        
{

        }

       
/// <summary>
        
/// 灝嗚涓婁紶鐨勬枃浠舵坊鍔犲埌l(fā)istbox涓?br>       /// </summary>
       
/// <param name="sender"></param>
       
/// <param name="e"></param>


        
protected void AddFile_Click(object sender, EventArgs e)
        
{
            
if (Page.IsPostBack == true)
            
{
                hif.Add(FindFile);
                FileList.Items.Add(FindFile.PostedFile.FileName);
            }

            
else
            
{ }

        }


        
/// <summary>
        
/// 浠巐istbox涓垹闄ゆ寚瀹氱殑鏂囦歡
        
/// </summary>
        
/// <param name="sender"></param>
        
/// <param name="e"></param>

        protected void RemvFile_Click(object sender, EventArgs e)
        
{
            
if (FileList.SelectedIndex == -1)
            
{
                TipInfo.Text 
= "閿欒 - 蹇呴』鎸囧畾瑕佸垹闄ょ殑鏂囦歡.";
                
return;
            }

            
else if (FileList.Items.Count != 0)
            
{
                hif.RemoveAt(FileList.SelectedIndex);
                FileList.Items.Remove(FileList.SelectedItem.Text);
                TipInfo.Text 
= "";
            }
           

        }


          
/// <summary>
  
/// 寰幆涓婁紶listbox涓殑鏂囦歡鍒版寚瀹氱殑鏂囦歡澶逛笅
  
/// </summary>
  
/// <param name="sender"></param>
  
/// <param name="e"></param>

        public void Upload_ServerClick(object sender, System.EventArgs e)
        
{
            
string baseLocation = Server.MapPath("UploadFiles/"); // 涓婁紶璺緞   
            string status = "";  // 涓婁紶鎴愬姛鍚庢樉紺虹殑鏂囦歡鍒楄〃         

            
if ((FileList.Items.Count == 0&& (filesUploaded == 0))
            
{
                TipInfo.Text 
= "閿欒 - 蹇呴』鎸囧畾瑕佷笂浼犵殑鏂囦歡.";
                
return;
            }

            
else
            
{
                
foreach (System.Web.UI.HtmlControls.HtmlInputFile HIF in hif)
                
{
                    
try
                    
{
                        
string fn = System.IO.Path.GetFileName(HIF.PostedFile.FileName);
                        HIF.PostedFile.SaveAs(baseLocation 
+ fn);
                        filesUploaded
++;
                        status 
+= fn + "<br>";
                    }

                    
catch (Exception err)
                    
{
                        TipInfo.Text 
= "涓婁紶閿欒 " + baseLocation
                         
+ "<br>" + err.ToString();
                    }

                }


                
if (filesUploaded == hif.Count)
                
{
                    TipInfo.Text 
= "鍏變笂浼犱簡 " + filesUploaded + " 涓枃浠躲?nbsp;<br>" + status;
                }

                hif.Clear();
                FileList.Items.Clear();
            }


        }

    }




 



51aspx.com 2007-04-10 11:45 鍙戣〃璇勮


colys 2007-04-10 11:45 鍙戣〃璇勮
]]>
JavaScript涓嶤# Windows搴旂敤紼嬪簭浜や簰http://www.shnenglu.com/colys/articles/20058.htmlcolyscolysSun, 18 Mar 2007 06:06:00 GMThttp://www.shnenglu.com/colys/articles/20058.htmlhttp://www.shnenglu.com/colys/comments/20058.htmlhttp://www.shnenglu.com/colys/articles/20058.html#Feedback0http://www.shnenglu.com/colys/comments/commentRss/20058.htmlhttp://www.shnenglu.com/colys/services/trackbacks/20058.html
聽1<html>
聽2<head>
聽3聽聽聽聽聽聽聽<meta聽http-equiv="Content-Language"聽content="zh-cn">
聽4聽聽聽聽聽聽聽<script聽language="javascript"聽type="text/javascript">
聽5聽聽聽聽聽聽聽聽聽聽聽聽聽聽<!--聽鎻愪緵緇機#紼嬪簭璋冪敤鐨勬柟娉暵?/span>-->
聽6聽聽聽聽聽聽聽聽聽聽聽聽 function聽messageBox(message)
聽7聽聽聽聽聽聽聽聽聽聽聽聽 {
聽8聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽alert(message);
聽9聽聽聽聽聽聽聽聽聽聽聽聽聽}
10聽聽聽聽聽聽聽</script>
11</head>
12
13<body>
14聽聽聽聽聽聽聽<!--聽璋冪敤C#鏂規(guī)硶聽-->
15聽聽聽聽聽聽聽<button聽onclick="window.external.MyMessageBox('javascript璁塊棶C#浠g爜')">
16聽聽聽聽聽聽聽javascript璁塊棶C#浠g爜</button>
17</body>
18</html>

浜屻?/span>寤虹珛Windows搴旂敤紼嬪簭

1.聽聽聽聽聽聽 鍒涘緩Windows搴旂敤紼嬪簭欏圭洰

2.聽聽聽聽聽聽 鍦?/span>Form1紿椾綋涓坊鍔?/span>WebBrowser鎺т歡

3.聽聽聽聽聽聽 鍦?/span>Form1綾葷殑涓婃柟娣誨姞

[System.Runtime.InteropServices.ComVisibleAttribute(true)]

榪欐槸涓轟簡灝嗚綾昏緗負com鍙闂傚鏋滀笉榪涜璇ュ0鏄庡皢浼氬嚭閿欍傚嚭閿欎俊鎭涓嬪浘鎵紺猴細

濡傦細

[System.Runtime.InteropServices.ComVisibleAttribute(true)]

publicpartialclassForm1 : Form

4錛庡垵濮嬪寲WebBrowser鐨?span>Url涓?span>ObjectForScripting涓や釜灞炴с?/span>

Url灞炴э細WebBrowser鎺т歡鏄劇ず鐨勭綉欏佃礬寰?/span>

ObjectForScripting灞炴э細璇ュ璞″彲鐢辨樉紺哄湪WebBrowser鎺т歡涓殑緗戦〉鎵鍖呭惈鐨勮剼鏈唬鐮佽闂?/span>

灝?span>Url灞炴ц緗負闇瑕佽繘琛屾搷浣滅殑欏電殑URL璺緞銆?/span>

JavaScript閫氳繃window.external璋冪敤C#鍏紑鐨勬柟娉曘傚嵆鐢?/span>ObjectForScripting灞炴ц緗殑綾葷殑瀹炰緥涓墍鍖呭惈鐨勫叕鍏辨柟娉曘傚叿浣撹緗緥瀛愬涓嬶細

System.IO.FileInfo file = new System.IO.FileInfo("index.htm");

// WebBrowser鎺т歡鏄劇ず鐨勭綉欏佃礬寰?/span>

webBrowser1.Url = newUri(file.FullName);

// 灝嗗綋鍓嶇被璁劇疆涓哄彲鐢辮剼鏈闂?/span>

webBrowser1.ObjectForScripting = this;

5錛?span>C#璋冪敤JavaScript鏂規(guī)硶

閫氳繃WebBrowser綾葷殑Document灞炴т腑鐨?span>InvokeScript鏂規(guī)硶璋冪敤褰撳墠緗戦〉鐨?span>Javascript鏂規(guī)硶銆傚錛?/span>

// 璋冪敤JavaScript鐨?span>messageBox鏂規(guī)硶錛屽茍浼犲叆鍙傛暟

object[] objects = newobject[1];

objects[0] = "C#璁塊棶JavaScript鑴氭湰";

webBrowser1.Document.InvokeScript("messageBox", objects);

瀹屾暣浠g爜濡備笅錛?/span>

聽1[System.Runtime.InteropServices.ComVisibleAttribute(true)]
聽2
聽3public聽partial聽class聽Form1聽:聽Form
聽4
聽5{
聽6
聽7聽聽聽聽public聽Form1()
聽8
聽9聽聽聽聽{
10
11聽聽聽聽聽聽聽聽InitializeComponent();
12
13聽聽聽聽聽聽聽聽System.IO.FileInfo聽file聽=new聽System.IO.FileInfo("index.htm");
14
15聽聽聽聽聽聽聽聽//聽WebBrowser鎺т歡鏄劇ず鐨勭綉欏佃礬寰?/span>
16
17聽聽聽聽聽聽聽聽webBrowser1.Url聽=new聽Uri(file.FullName);
18
19聽聽聽聽聽聽聽聽//聽灝嗗綋鍓嶇被璁劇疆涓哄彲鐢辮剼鏈闂?/span>
20
21聽聽聽聽聽聽聽聽webBrowser1.ObjectForScripting聽=this;
22
23聽聽聽聽}
24
25
26
27聽聽聽聽privatevoid聽button1_Click(object聽sender,聽EventArgs聽e)28
29聽聽聽 {
30
31聽聽聽聽聽聽聽聽//聽璋冪敤JavaScript鐨刴essageBox鏂規(guī)硶錛屽茍浼犲叆鍙傛暟
32
33聽聽聽聽聽聽聽聽object[]聽objects聽=newobject[1];
34
35聽聽聽聽聽聽聽聽objects[0]聽="C#璁塊棶JavaScript鑴氭湰";
36
37聽聽聽聽聽聽聽聽webBrowser1.Document.InvokeScript("messageBox",聽objects);
38
39聽聽聽聽}
40
41聽聽聽聽//聽鎻愪緵緇橨avaScript璋冪敤鐨勬柟娉?/span>
42
43聽聽聽聽publicvoid聽MyMessageBox(string聽message)44
45聽聽聽聽{
46
47聽聽聽聽聽聽聽聽MessageBox.Show(message);
48聽聽聽聽}
49}
50



colys 2007-03-18 14:06 鍙戣〃璇勮
]]>
久久婷婷五月综合色高清| 三上悠亚久久精品| 免费精品国产日韩热久久| 一本色道久久88—综合亚洲精品| 欧美激情精品久久久久久久九九九 | 精品国产日韩久久亚洲| 欧美久久久久久| 色欲综合久久躁天天躁蜜桃| 国产精品美女久久久m| 久久夜色tv网站| 亚洲国产成人精品久久久国产成人一区二区三区综 | 色婷婷噜噜久久国产精品12p| 国产精品久久久久久五月尺| 欧美熟妇另类久久久久久不卡| 99国产精品久久| 久久久无码精品亚洲日韩软件| 久久精品一区二区三区AV| 2021精品国产综合久久| 国产成人精品久久综合 | 国产精品久久久久影视不卡| 日本一区精品久久久久影院| 久久精品国产亚洲5555| 中文字幕亚洲综合久久菠萝蜜 | 日批日出水久久亚洲精品tv| 无码人妻久久一区二区三区| 91性高湖久久久久| 囯产极品美女高潮无套久久久| 国产成人久久精品一区二区三区 | 天堂久久天堂AV色综合| 青青草原综合久久大伊人精品| 国产精品一区二区久久精品涩爱 | 伊人色综合九久久天天蜜桃| 久久66热人妻偷产精品9| 久久99精品九九九久久婷婷| 国产女人aaa级久久久级| 久久久久久久波多野结衣高潮| 国产精品久久久久影院嫩草| 人妻无码精品久久亚瑟影视| 色综合久久中文综合网| 无码精品久久久天天影视| 久久99精品久久久久久不卡|