锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久国产高清一区二区三区,久久综合给合久久国产免费,国产精品久久久久久久午夜片 http://www.shnenglu.com/colys/category/3752.htmlLIFE AS CODE zh-cn Sat, 24 May 2008 11:33:23 GMT Sat, 24 May 2008 11:33:23 GMT 60 鎶婂涓枃浠跺啓鍏ュ埌涓涓枃浠朵腑鍘誨茍鑳藉垎瑙?/title> http://www.shnenglu.com/colys/articles/33750.htmlcolys colys Mon, 08 Oct 2007 03:50:00 GMT http://www.shnenglu.com/colys/articles/33750.html http://www.shnenglu.com/colys/comments/33750.html http://www.shnenglu.com/colys/articles/33750.html#Feedback 0 http://www.shnenglu.com/colys/comments/commentRss/33750.html http://www.shnenglu.com/colys/services/trackbacks/33750.html 瀵逛簬涓涓枃浠剁殑璇誨啓錛屽叾瀹炲緢綆鍗曪紝灝辨槸鐢?font face="Times New Roman">FileStream 榪涜Read 鎴栬?font face="Times New Roman">Write灝辮浜嗐備絾鏄浣曟妸澶氫釜鏂囦歡鍐欏叆鍒板悓涓涓枃浠訛紝涔嬪悗瑕佽兘鎶婅繖涓枃浠惰繘琛岃繕鍘熸垚澶氫釜鏂囦歡銆傞偅涔堝厜闈?font face="Times New Roman">FileStream鐨?font face="Times New Roman">Read鍜?font face="Times New Roman">Write鏂規(guī)硶鏄笉澶熺殑錛岄鍏堜綘闇瑕佽嚜琛屽緩绔嬫枃浠剁儲寮曪紝鏉ユ爣鏄庢瘡涓枃浠跺湪褰撳墠鏂囦歡鐨勪綅緗?/font>
閭d箞鏈榪戜綔浜嗕竴涓畝鍗曠殑DEMO 錛屽叾涓被鐨勯儴鍒嗕唬鐮佸涓嬶細
//------------------------------- Compose Files ----------------------------------
//--------------------------------------------------------------------------------
//---File:clsComposeFiles.cs
//---Description:This file is to show how-to compose multi-files into one file
// and decompose one file to multi-files.
//---Author:Knight
//---Date:May.16, 2006
//--------------------------------------------------------------------------------
//------------------------------{ Compose Files }---------------------------------
namespace ComposeFiles
{
using System;
using System.IO;
using System.Collections;
using System.Text;
/// <summary>
/// Summary description for clsComposeFiles.
/// </summary>
public class clsComposeFiles
{
private ArrayList arrFiles = new ArrayList();
public clsComposeFiles()
{
//
// TODO: Add constructor logic here
//
}
/// <summary>
/// Add a file to be composed
/// </summary>
/// <param name="sFileName"></param>
public void AddFile( string sFileName )
{
arrFiles.Add( sFileName );
}
/// <summary>
/// Compose files to the specific file
/// </summary>
/// <param name="sFileName"></param>
/// <returns></returns>
public bool ComposeFiles( string sFileName )
{
if( arrFiles.Count == 0 ) return false;
FileInfo fi = new FileInfo( sFileName );
// Open file to write
FileStream fsWriter = null;
try
{
if( !fi.Exists )
{
fsWriter = new FileStream(
sFileName,
FileMode.CreateNew,
FileAccess.ReadWrite,
FileShare.None );
}
else
fsWriter = new FileStream(
sFileName,
FileMode.Truncate,
FileAccess.ReadWrite,
FileShare.None );
}
catch(Exception err)
{
System.Diagnostics.Debug.WriteLine( err.Message );
return false;
}
byte[] bBuffer = null;
// Write files count
bBuffer = FileIndex.LongToBytes( arrFiles.Count );
fsWriter.Write( bBuffer, 0, 8 );
const long INDEX_START_POS = 8L;
// Init files index
FileIndex FI = new FileIndex();
for( int i = 0; i < arrFiles.Count; i++ )
fsWriter.Write( FileIndex.ConvertToBytes( ref FI ), 0, 32 );
long FILE_START_POS = INDEX_START_POS + 32 * arrFiles.Count;
long lCurFileStartPos = FILE_START_POS;
// Write every file
for( int i = 0; i < arrFiles.Count; i++ )
{
WriteFile( arrFiles[i].ToString(),
ref lCurFileStartPos,
INDEX_START_POS,
fsWriter,
i );
}
// Close stream
fsWriter.Close();
return true;
}
/// <summary>
/// Write file name and data into composed file
/// </summary>
/// <param name="sFileName"></param>
/// <param name="FileStartPos"></param>
/// <param name="IndexStartPos"></param>
/// <param name="fsWriter"></param>
/// <param name="Index"></param>
private void WriteFile(
string sFileName,
ref long FileStartPos,
long IndexStartPos,
FileStream fsWriter,
int Index )
{
FileInfo fi = new FileInfo( sFileName );
if( !fi.Exists ) return;
FileStream fsReader = null;
try
{
fsReader = new FileStream(
sFileName, FileMode.Open,
FileAccess.Read );
}
catch{ return;}
// Get file name
byte[] bFileName = Encoding.Unicode.GetBytes( fi.Name );
// Write file name
fsWriter.Write( bFileName, 0, bFileName.Length );
const int BUFFER_LENGTH = 1024;
byte[] bBuffer = new byte[BUFFER_LENGTH];
int nRealRead = 0;
// Write data using
do
{
// Read data from file
nRealRead = fsReader.Read( bBuffer, 0,
BUFFER_LENGTH );
// Write data
fsWriter.Write( bBuffer, 0, nRealRead );
}while( nRealRead > 0 );
// Close file reader
fsReader.Close();
FileIndex FINew = new FileIndex();
FINew.NameStartPos = FileStartPos;
FINew.NameLength = bFileName.Length;
FINew.FileStartPos = FileStartPos + bFileName.Length;
FINew.FileLength = fi.Length;
// Go back to file index position
fsWriter.Seek( IndexStartPos + Index * 32, SeekOrigin.Begin );
// Write file index info
fsWriter.Write( FileIndex.ConvertToBytes( ref FINew ), 0, 32 );
// Go back to file end
fsWriter.Seek( 0, SeekOrigin.End );
// Set file current position
FileStartPos += bFileName.Length + fi.Length;
}
/// <summary>
/// Decompose file to multi files into specific directory
/// </summary>
/// <param name="sFileName"></param>
/// <param name="sDestDir"></param>
/// <returns></returns>
public bool DecomposeFile( string sFileName, string sDestDir )
{
FileInfo fi = new FileInfo( sFileName );
if( !fi.Exists ) return false;
FileStream fsReader = null;
try
{
fsReader = new FileStream(
sFileName, FileMode.Open,
FileAccess.Read );
}
catch{ return false;}
// Read file count
byte[] bFileCount = new byte[8];
int nRealRead = 0;
nRealRead = fsReader.Read( bFileCount, 0, 8 );
if( nRealRead != 8 )
{
fsReader.Close();
return false;
}
long lFileCount = FileIndex.BytesToLong( bFileCount );
if( lFileCount > 0 )
{
//Init file index array
FileIndex[] fiArray = new FileIndex[lFileCount];
byte[] bFileIndex = new byte[32];
for( int i = 0; i < lFileCount; i++ )
{
fsReader.Read( bFileIndex, 0, 32 );
fiArray[i] = FileIndex.ConvertToFileIndex( bFileIndex );
}
if( sDestDir[ sDestDir.Length - 1] != '\\' )
sDestDir += "\\";
// Save every file into current directory
for( int i = 0; i < fiArray.Length; i++ )
{
SaveFile( fsReader,
ref fiArray[i],
sDestDir );
}
}
// Close file reader
fsReader.Close();
return true;
}
/// <summary>
/// Save every file into directory
/// </summary>
/// <param name="fsReader"></param>
/// <param name="FI"></param>
/// <param name="sDestDir"></param>
private void SaveFile(
FileStream fsReader,
ref FileIndex FI,
string sDestDir )
{
// Read file name
byte[] bFileName = new byte[ FI.NameLength ];
int nRealRead = fsReader.Read( bFileName, 0, bFileName.Length );
if( nRealRead != bFileName.Length ) return;
string sFileName = Encoding.Unicode.GetString( bFileName );
sFileName = sDestDir + sFileName;
FileInfo fi = new FileInfo( sFileName );
// Open file to write
FileStream fsWriter = null;
try
{
if( !fi.Exists )
{
fsWriter = new FileStream(
sFileName,
FileMode.CreateNew,
FileAccess.ReadWrite,
FileShare.None );
}
else
fsWriter = new FileStream(
sFileName,
FileMode.Truncate,
FileAccess.ReadWrite,
FileShare.None );
}
catch(Exception err){
System.Diagnostics.Debug.WriteLine( err.Message );
return;
}
// Init buffer
const int BUFFER_LENGTH = 1024;
byte[] bBuffer = new byte[BUFFER_LENGTH];
long lLeft = FI.FileLength;
// Copy file
do
{
if( lLeft > BUFFER_LENGTH )
{
fsReader.Read( bBuffer, 0, BUFFER_LENGTH );
fsWriter.Write( bBuffer, 0, BUFFER_LENGTH );
lLeft -= BUFFER_LENGTH;
}
else
{
nRealRead = fsReader.Read( bBuffer, 0, (int)lLeft );
fsWriter.Write( bBuffer, 0, nRealRead );
lLeft -= nRealRead;
}
}
while( lLeft > 0 );
// close file writer
fsWriter.Close();
}
}
/// <summary>
/// File index data structure
/// </summary>
public struct FileIndex
{
public long NameStartPos;
public long NameLength;
public long FileStartPos;
public long FileLength;
public static byte[] ConvertToBytes( ref FileIndex FI )
{
byte[] bData = new byte[32];
Array.Copy( LongToBytes( FI.NameStartPos ), 0, bData, 0, 8 );
Array.Copy( LongToBytes( FI.NameLength ), 0, bData, 8, 8 );
Array.Copy( LongToBytes( FI.FileStartPos ), 0, bData, 16, 8 );
Array.Copy( LongToBytes( FI.FileLength ), 0, bData, 24, 8 );
return bData;
}
public static byte[] LongToBytes( long lValue )
{
byte[] bData = new byte[8];
bData[0] = (byte)( ( lValue >> 56 ) & 0xFF);
bData[1] = (byte)( ( lValue >> 48 ) & 0xFF);
bData[2] = (byte)( ( lValue >> 40 ) & 0xFF);
bData[3] = (byte)( ( lValue >> 32 ) & 0xFF);
bData[4] = (byte)( ( lValue >> 24 ) & 0xFF);
bData[5] = (byte)( ( lValue >> 16 ) & 0xFF);
bData[6] = (byte)( ( lValue >> 8 ) & 0xFF);
bData[7] = (byte)(lValue & 0xFF);
return bData;
}
public static FileIndex ConvertToFileIndex( byte[] bData )
{
if( bData == null || bData.Length != 32 )
throw new Exception( "Invalid parameters!" );
FileIndex FI = new FileIndex();
byte[] bBuffer = new byte[8];
Array.Copy( bData, 0, bBuffer, 0, 8 );
FI.NameStartPos = BytesToLong( bBuffer );
Array.Copy( bData, 8, bBuffer, 0, 8 );
FI.NameLength = BytesToLong( bBuffer );
Array.Copy( bData, 16, bBuffer, 0, 8 );
FI.FileStartPos = BytesToLong( bBuffer );
Array.Copy( bData, 24, bBuffer, 0, 8 );
FI.FileLength = BytesToLong( bBuffer );
return FI;
}
public static long BytesToLong( byte[] bData )
{
if( bData == null || bData.Length != 8 )
throw new Exception( "Invalid parameters!" );
long lngValue = 0;
lngValue += bData[0];
lngValue = ( lngValue << 8 );
lngValue += bData[1];
lngValue = ( lngValue << 8 );
lngValue += bData[2];
lngValue = ( lngValue << 8 );
lngValue += bData[3];
lngValue = ( lngValue << 8 );
lngValue += bData[4];
lngValue = ( lngValue << 8 );
lngValue += bData[5];
lngValue = ( lngValue << 8 );
lngValue += bData[6];
lngValue = ( lngValue << 8 );
lngValue += bData[7];
return lngValue;
}
}
}
鍏朵腑綾葷殑鎿嶄綔鍙傜湅clsComposeFiles 榪欎釜綾伙紝鑰屾枃浠剁儲寮曠粨鏋勫弬鐪?font face="Times New Roman">FileIndex 榪欎釜Structure 銆?/font>
涔嬪悗鐨勮皟鐢ㄥ氨寰堢畝鍗曪紝渚嬪錛?/font>
鍚堟垚鏂囦歡錛?/font>
clsComposeFiles myComposeFiles = new clsComposeFiles();
myComposeFiles.AddFile( @"D:\Ship.exe" );
myComposeFiles.AddFile( @"D:\LoginPage.JPG" );
myComposeFiles.ComposeFiles( @"D:\Ship.dat" );
鍒嗚В鏂囦歡錛?/font>
clsComposeFiles myComposeFiles = new clsComposeFiles();
myComposeFiles.DecomposeFile( @"D:\Ship.dat", @"E:\" );
]]>鍒╃敤瀹㈡埛绔紦瀛樺緗戠珯榪涜浼樺寲[杞琞 http://www.shnenglu.com/colys/articles/32840.htmlcolys colys Tue, 25 Sep 2007 05:23:00 GMT http://www.shnenglu.com/colys/articles/32840.html http://www.shnenglu.com/colys/comments/32840.html http://www.shnenglu.com/colys/articles/32840.html#Feedback 0 http://www.shnenglu.com/colys/comments/commentRss/32840.html http://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( 7 , 0 , 0 , 0 )); // 灝嗙紦瀛樿繃鏈熶粠緇濆鏃墮棿璁劇疆涓哄彲璋冩椂闂?/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( 7 , 0 , 0 , 0 )); 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 ]]> nhibernate鍏ラ棬緋誨垪: many-to-many鏄犲皠[杞琞 http://www.shnenglu.com/colys/articles/32461.htmlcolys colys Wed, 19 Sep 2007 03:31:00 GMT http://www.shnenglu.com/colys/articles/32461.html http://www.shnenglu.com/colys/comments/32461.html http://www.shnenglu.com/colys/articles/32461.html#Feedback 0 http://www.shnenglu.com/colys/comments/commentRss/32461.html http://www.shnenglu.com/colys/services/trackbacks/32461.html 澶氬澶氬叧緋誨湪鏁版嵁搴撲篃鏄瘮杈冨父瑙佺殑錛屽畠閫氳繃涓涓腑闂磋〃灝嗕袱涓富琛ㄥ叧鑱旇搗鏉ャ?br>涓嬮潰鏉ョ湅鐪嬪瀵瑰鍏寵仈鍦╪h鐨勫疄鐜幫紝紺轟緥鏄竴涓猆ser鍜孏roup涔嬮棿鐨勫瀵瑰鍏寵仈銆?br> 鍏堟潵鐪嬬湅User綾葷殑鏄犲皠淇℃伅: 鍦ㄥ瀵瑰瀹氫箟涓紝瀹氫箟浜嗕腑闂磋〃涓篣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-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
]]> 鍒嗘暎鏁版嵁搴撳帇鍔?鍒嗚〃澶勭悊璁捐鎬濇兂鍜屽疄鐜?/title> http://www.shnenglu.com/colys/articles/32397.htmlcolys colys Tue, 18 Sep 2007 01:51:00 GMT http://www.shnenglu.com/colys/articles/32397.html http://www.shnenglu.com/colys/comments/32397.html http://www.shnenglu.com/colys/articles/32397.html#Feedback 0 http://www.shnenglu.com/colys/comments/commentRss/32397.html http://www.shnenglu.com/colys/services/trackbacks/32397.html 涓銆佹榪?/strong>
鍒嗚〃鏄釜鐩墠綆楁槸姣旇緝鐐掔殑姣旇緝嫻佽鐨勬蹇碉紝鐗瑰埆鏄湪澶ц礋杞界殑鎯呭喌涓嬶紝鍒嗚〃鏄竴涓壇濂藉垎鏁f暟鎹簱鍘嬪姏鐨勫ソ鏂規(guī)硶銆?/div>
棣栧厛瑕佷簡瑙d負浠涔堣鍒嗚〃錛屽垎琛ㄧ殑濂藉鏄粈涔堛傛垜浠厛鏉ュぇ姒備簡瑙d互涓嬩竴涓暟鎹簱鎵цSQL鐨勮繃紼嬶細
鎺ユ敹鍒癝QL --> 鏀懼叆SQL鎵ц闃熷垪 --> 浣跨敤鍒嗘瀽鍣ㄥ垎瑙QL --> 鎸夌収鍒嗘瀽緇撴灉榪涜鏁版嵁鐨勬彁鍙栨垨鑰呬慨鏀?--> 榪斿洖澶勭悊緇撴灉
褰撶劧錛岃繖涓祦紼嬪浘涓嶄竴瀹氭紜紝榪欏彧鏄垜鑷繁涓昏鎰忚瘑涓婅繖涔堟垜璁や負銆傞偅涔堣繖涓鐞嗚繃紼嬪綋涓紝鏈瀹規(guī)槗鍑虹幇闂鐨勬槸浠涔堬紵灝辨槸璇達紝濡傛灉鍓嶄竴涓猄QL娌?
鏈夋墽琛屽畬姣曠殑璇濓紝鍚庨潰鐨凷QL鏄笉浼氭墽琛岀殑錛屽洜涓轟負浜嗕繚璇佹暟鎹殑瀹屾暣鎬э紝蹇呴』瀵規(guī)暟鎹〃鏂囦歡榪涜閿佸畾錛屽寘鎷叡浜攣鍜岀嫭浜攣涓ょ閿佸畾銆傚叡浜攣鏄湪閿佸畾鐨勬湡闂達紝
鍏跺畠綰跨▼涔熷彲浠ヨ闂繖涓暟鎹枃浠訛紝浣嗘槸涓嶅厑璁鎬慨鏀規(guī)搷浣滐紝鐩稿簲鐨勶紝鐙韓閿佸氨鏄暣涓枃浠跺氨鏄綊涓涓嚎紼嬫墍鏈夛紝鍏跺畠綰跨▼鏃犳硶璁塊棶榪欎釜鏁版嵁鏂囦歡銆備竴鑸琈ySQL涓?
鏈蹇殑瀛樺偍寮曟搸MyISAM錛屽畠鏄熀浜庤〃閿佸畾鐨勶紝灝辨槸璇村鏋滀竴閿佸畾鐨勮瘽錛岄偅涔堟暣涓暟鎹枃浠跺閮ㄩ兘鏃犳硶璁塊棶錛屽繀欏葷瓑鍓嶄竴涓搷浣滃畬鎴愬悗錛屾墠鑳芥帴鏀朵笅涓涓搷浣滐紝
閭d箞鍦ㄨ繖涓墠涓涓搷浣滄病鏈夋墽琛屽畬鎴愶紝鍚庝竴涓搷浣滅瓑寰呭湪闃熷垪閲屾棤娉曟墽琛岀殑鎯呭喌鍙仛闃誨錛屼竴鑸垜浠氫織鎰忎箟涓婂彨鍋?#8220;閿佽〃”銆?/div>
閿佽〃鐩存帴瀵艱嚧鐨勫悗鏋滄槸浠涔堬紵灝辨槸澶ч噺鐨凷QL鏃犳硶绔嬪嵆鎵ц錛屽繀欏葷瓑闃熷垪鍓嶉潰鐨凷QL鍏ㄩ儴鎵ц瀹屾瘯鎵嶈兘緇х畫鎵ц銆傝繖涓棤娉曟墽琛岀殑SQL灝變細瀵艱嚧娌℃湁緇撴灉錛屾垨鑰呭歡榪熶弗閲嶏紝褰卞搷鐢ㄦ埛浣撻獙銆?/div>
鐗瑰埆鏄浜庝竴浜涗嬌鐢ㄦ瘮杈冮綣佺殑琛紝姣斿SNS緋葷粺涓殑鐢ㄦ埛淇℃伅琛ㄣ佽鍧涚郴緇熶腑鐨勫笘瀛愯〃絳夌瓑錛岄兘鏄闂噺澶у緢澶х殑琛紝涓轟簡淇濊瘉鏁版嵁鐨勫揩閫熸彁鍙栬繑鍥炵粰鐢ㄦ埛錛屽繀欏諱嬌鐢ㄤ竴浜涘鐞嗘柟寮忔潵瑙e喅榪欎釜闂錛岃繖涓氨鏄垜浠婂ぉ瑕佽亰鍒扮殑鍒嗚〃鎶鏈?/div>
鍒嗚〃鎶鏈【鍚嶆濅箟錛屽氨鏄妸鑻ュ共涓瓨鍌ㄧ浉鍚岀被鍨嬫暟鎹殑琛ㄥ垎鎴愬嚑涓〃鍒嗚〃瀛樺偍錛屽湪鎻愬彇鏁版嵁鐨勬椂鍊欙紝涓嶅悓鐨勭敤鎴瘋闂笉鍚岀殑琛紝浜掍笉鍐茬獊錛屽噺灝戦攣琛ㄧ殑鍑?
鐜囥傛瘮濡傦紝鐩墠淇濆瓨鐢ㄦ埛鍒嗚〃鏈変袱涓〃錛屼竴涓槸user_1琛紝榪樻湁涓涓槸 user_2 琛紝涓や釜琛ㄤ繚瀛樹簡涓嶅悓鐨勭敤鎴蜂俊鎭紝user_1
淇濆瓨浜嗗墠10涓囩殑鐢ㄦ埛淇℃伅錛寀ser_2淇濆瓨浜嗗悗10涓囧悕鐢ㄦ埛鐨勪俊鎭紝鐜板湪濡傛灉鍚屾椂鏌ヨ鐢ㄦ埛 heiyeluren1 鍜?heiyeluren2
榪欎釜涓や釜鐢ㄦ埛錛岄偅涔堝氨鏄垎琛ㄤ粠涓嶅悓鐨勮〃鎻愬彇鍑烘潵錛屽噺灝戦攣琛ㄧ殑鍙兘銆?/div>
鎴戜笅闈㈣璁茶堪鐨勪袱縐嶅垎琛ㄦ柟娉曟垜鑷繁閮芥病鏈夊疄楠岃繃錛屼笉淇濊瘉鍑嗙‘鑳界敤錛屽彧鏄彁渚涗竴涓璁℃濊礬銆備笅闈㈠叧浜庡垎琛ㄧ殑渚嬪瓙鎴戝亣璁炬槸鍦ㄤ竴涓創(chuàng)鍚х郴緇熺殑鍩虹涓婃潵榪涜澶勭悊鍜屾瀯寤虹殑銆傦紙濡傛灉娌℃湁鐢ㄨ繃璐村惂鐨勭敤鎴瘋刀绱oogle涓涓嬶級
浜屻佸熀浜庡熀紜琛ㄧ殑鍒嗚〃澶勭悊
榪欎釜鍩轟簬鍩虹琛ㄧ殑鍒嗚〃澶勭悊鏂瑰紡澶ц嚧鐨勬濇兂灝辨槸錛氫竴涓富瑕佽〃錛屼繚瀛樹簡鎵鏈夌殑鍩烘湰淇℃伅錛屽鏋滄煇涓」鐩渶瑕佹壘鍒板畠鎵瀛樺偍鐨勮〃錛岄偅涔堝繀欏諱粠榪欎釜鍩虹琛ㄤ腑
鏌ユ壘鍑哄搴旂殑琛ㄥ悕絳夐」鐩紝濂界洿鎺ヨ闂繖涓〃銆傚鏋滆寰楄繖涓熀紜琛ㄩ熷害涓嶅蹇紝鍙互瀹屽叏鎶婃暣涓熀紜琛ㄤ繚瀛樺湪緙撳瓨鎴栬呭唴瀛樹腑錛屾柟渚挎湁鏁堢殑鏌ヨ銆?/div>
鎴戜滑鍩轟簬璐村惂鐨勬儏鍐碉紝鏋勫緩鍋囪濡備笅鐨?寮犺〃錛?/div>
1. 璐村惂鐗堝潡琛? 淇濆瓨璐村惂涓増鍧楃殑淇℃伅
2. 璐村惂涓婚琛細淇濆瓨璐村惂涓増鍧椾腑鐨勪富棰樹俊鎭紝鐢ㄤ簬嫻忚
3. 璐村惂鍥炲琛細淇濆瓨涓婚鐨勫師濮嬪唴瀹瑰拰鍥炲鍐呭
“璐村惂鐗堝潡琛?#8221;鍖呭惈濡備笅瀛楁錛?/div>
鐗堝潡ID board_id int(10)
鐗堝潡鍚嶇О board_name char(50)
瀛愯〃ID table_id smallint(5)
浜х敓鏃墮棿 created datetime
“璐村惂涓婚琛?#8221;鍖呭惈濡備笅瀛楁錛?/div>
涓婚I(yè)D topic_id int(10)
涓婚鍚嶇О topic_name char(255)
鐗堝潡ID board_id int(10)
鍒涘緩鏃墮棿 created datetime
“璐村惂鍥炲琛?#8221;鐨勫瓧孌靛涓嬶細
鍥炲ID reply_id int(10)
鍥炲鍐呭 reply_text text
涓婚I(yè)D topic_id int(10)
鐗堝潡ID board_id int(10)
鍒涘緩鏃墮棿 created datetime
閭d箞涓婇潰淇濆瓨浜嗘垜浠暣涓創(chuàng)鍚т腑鐨勮〃緇撴瀯淇℃伅錛屼笁涓〃瀵瑰簲鐨勫叧緋繪槸錛?/div>
鐗堝潡 --> 澶氫釜涓婚
涓婚 --> 澶氫釜鍥炲
閭d箞灝辨槸璇達紝琛ㄦ枃浠跺ぇ灝忕殑鍏崇郴鏄細
鐗堝潡琛ㄦ枃浠?< 涓婚琛ㄦ枃浠?< 鍥炲琛ㄦ枃浠?/div>
鎵浠ュ熀鏈彲浠ョ‘瀹氶渶瑕佸涓婚琛ㄥ拰鍥炲琛ㄨ繘琛屽垎琛紝宸插鍔犳垜浠暟鎹绱㈡煡璇㈡洿鏀規(guī)椂鍊欑殑閫熷害鍜屾ц兘銆?/div>
鐪嬩簡涓婇潰鐨勮〃緇撴瀯錛屼細鏄庢樉鍙戠幇錛屽湪“鐗堝潡琛?#8221;涓繚瀛樹簡涓涓?table_id"瀛楁錛岃繖涓瓧孌靛氨鏄敤浜庝繚瀛樹竴涓増鍧楀搴旂殑涓婚鍜屽洖澶嶉兘鏄垎琛ㄤ繚瀛樺湪浠涔堣〃閲岀殑銆?/div>
姣斿鎴戜滑鏈変竴涓彨鍋?#8220;PHP”鐨勮創(chuàng)鍚э紝board_id鏄?錛屽瓙琛↖D涔熸槸1錛岄偅涔堣繖鏉¤褰曞氨鏄細
board_id | board_name | table_id | created
1 | PHP | 1 | 2007-01-19 00:30:12
鐩稿簲鐨勶紝濡傛灉鎴戦渶瑕佹彁鍙?#8220;PHP”鍚ч噷鐨勬墍鏈変富棰橈紝閭d箞灝卞繀欏繪寜鐓ц〃閲屼繚瀛樼殑table_id鏉ョ粍鍚堜竴涓瓨鍌ㄤ簡涓婚鐨勮〃鍚嶇О錛屾瘮濡傛垜浠富棰樿〃鐨勫墠緙鏄?#8220;topic_”錛岄偅涔堢粍鍚堝嚭鏉?#8220;PHP”鍚у搴旂殑涓婚琛ㄥ簲璇ユ槸錛?#8220;topic_1”錛岄偅涔堟垜浠墽琛岋細
Select * FROM topic_1 Where board_id = 1 orDER BY topic_id DESC LIMIT 10
榪欐牱灝辮兘澶熻幏鍙栬繖涓富棰樹笅闈㈠洖澶嶅垪琛紝鏂逛究鎴戜滑榪涜鏌ョ湅錛屽鏋滈渶瑕佹煡鐪嬫煇涓富棰樹笅闈㈢殑鍥炲錛屾垜浠彲浠ョ戶緇嬌鐢ㄧ増鍧楄〃涓繚瀛樼殑“table_id”鏉ヨ繘琛屾煡璇€傛瘮濡傛垜浠洖澶嶈〃鐨勫墠緙鏄?#8220;reply_”錛岄偅涔堝氨鍙互緇勫悎鍑?#8220;PHP”鍚х殑ID涓?鐨勪富棰樼殑鍥炲錛?/div>
Select * FROM reply_1 Where topic_id = 1 orDER BY reply_id DESC LIMIT 10
榪欓噷錛屾垜浠兘澶熸竻鏅扮殑鐪嬪埌錛屽叾瀹炴垜浠繖閲屼嬌鐢ㄤ簡鍩虹琛紝鍩虹琛ㄥ氨鏄垜浠殑鐗堝潡琛ㄣ傞偅涔堢浉搴旂殑錛岃偗瀹氫細璇達細鍩虹琛ㄧ殑鏁版嵁閲忓ぇ浜嗕互鍚庡浣曚繚璇佸畠鐨勯熷害鍜屾晥鐜囷紵
褰撶劧錛屾垜浠氨蹇呴』浣垮緱榪欎釜鍩虹琛ㄤ繚鎸佹渶濂界殑閫熷害鍜屾ц兘錛屾瘮濡傦紝鍙互閲囩敤MySQL鐨勫唴瀛樿〃鏉ュ瓨鍌紝鎴栬呬繚瀛樺湪鍐呭瓨褰撲腑錛屾瘮濡侻emcache涔嬬被鐨勫唴瀛樼紦瀛樼瓑絳夛紝鍙互鎸夌収瀹為檯鎯呭喌鏉ヨ繘琛岃皟鏁淬?/div>
涓鑸熀浜庡熀紜琛ㄧ殑鍒嗚〃鏈哄埗鍦⊿NS銆佷氦鍙嬨佽鍧涚瓑Web2.0緗戠珯涓槸涓瘮杈冧笉閿欑殑瑙e喅鏂規(guī)錛屽湪榪欎簺緗戠珯涓紝瀹屽叏鍙互鍗曠嫭浣跨敤涓涓〃鏉ユ潵淇濆瓨鍩烘湰鏍囪瘑鍜岀洰鏍囪〃涔嬮棿鐨勫叧緋匯備嬌鐢ㄨ〃淇濆瓨瀵瑰簲鍏崇郴鐨勫ソ澶勬槸浠ュ悗鎵╁睍闈炲父鏂逛究錛屽彧闇瑕佸鍔犱竴涓〃璁板綍銆?/div>
銆?strong> 浼樺娍 銆戝鍔犲垹闄よ妭鐐歸潪甯告柟渚匡紝涓哄悗鏈熷崌綰х淮鎶ゅ甫鏉ュ緢澶т究鍒?/div>
銆?strong> 鍔e娍 銆戦渶瑕佸鍔犺〃鎴栬呭鏌愪竴涓〃榪涜鎿嶄綔錛岃繕鏄棤娉曠寮鏁版嵁搴擄紝浼氫駭鐢熺摱棰?/div>
涓夈佸熀浜?/strong> Hash 綆楁硶鐨勫垎琛ㄥ鐞?/strong>
鎴戜滑鐭ラ亾Hash琛ㄥ氨鏄氳繃鏌愪釜鐗規(guī)畩鐨凥ash綆楁硶璁$畻鍑虹殑涓涓鹼紝榪欎釜鍊煎繀欏繪槸鎯熶竴鐨勶紝騫朵笖鑳藉浣跨敤榪欎釜璁$畻鍑烘潵鐨勫兼煡鎵懼埌闇瑕佺殑鍊鹼紝榪欎釜鍙仛鍝堝笇琛ㄣ?/div>
鎴戜滑鍦ㄥ垎琛ㄩ噷鐨刪ash綆楁硶璺熻繖涓濇兂綾諱技錛氶氳繃涓涓師濮嬬洰鏍囩殑ID鎴栬呭悕縐伴氳繃涓瀹氱殑hash綆楁硶璁$畻鍑烘暟鎹瓨鍌ㄨ〃鐨勮〃鍚嶏紝鐒跺悗璁塊棶鐩稿簲鐨勮〃銆?/div>
緇х畫鎷夸笂闈㈢殑璐村惂鏉ヨ錛屾瘡涓創(chuàng)鍚ф湁鐗堝潡鍚嶇О鍜岀増鍧桰D錛岄偅涔堣繖涓ら」鍊兼槸鍥哄畾鐨勶紝騫朵笖鏄儫涓鐨勶紝閭d箞鎴戜滑灝卞彲浠ヨ冭檻閫氳繃瀵硅繖涓ら」鍊間腑鐨勪竴欏硅繘琛屼竴浜涜繍綆楀緱鍑轟竴涓洰鏍囪〃鐨勫悕縐般?/div>
鐜板湪鍋囧鎴戜滑閽堝鎴戜滑榪欎釜璐村惂緋葷粺錛屽亣璁劇郴緇熸渶澶у厑璁?浜挎潯鏁版嵁錛岃冭檻姣忎釜琛ㄤ繚瀛?00涓囨潯璁板綍錛岄偅涔堟暣涓郴緇熷氨涓嶈秴榪?00涓〃灝辮兘澶熷綰熾傛寜鐓ц繖涓爣鍑嗭紝鎴戜滑鍋囪鍦ㄨ創(chuàng)鍚х殑鐗堝潡ID涓婅繘琛宧ash錛岃幏寰椾竴涓猭ey鍊鹼紝榪欎釜鍊煎氨鏄垜浠殑琛ㄥ悕錛岀劧鍚庤闂浉搴旂殑琛ㄣ?/div>
鎴戜滑鏋勯犱竴涓畝鍗曠殑hash綆楁硶錛?/div>
function get_hash($id){
$str = bin2hex($id);
$hash = substr($str, 0, 4);
if (strlen($hash)<4){
$hash = str_pad($hash, 4, "0");
}
return $hash;
}
綆楁硶澶ц嚧灝辨槸浼犲叆涓涓増鍧桰D鍊鹼紝鐒跺悗鍑芥暟榪斿洖涓涓?浣嶇殑瀛楃涓詫紝濡傛灉瀛楃涓查暱搴︿笉澶燂紝浣跨敤0榪涜琛ュ叏銆?/div>
姣斿錛歡et_hash(1)錛岃緭鍑虹殑緇撴灉鏄?#8220;3100”錛岃緭鍏ワ細get_hash(23819)錛屽緱鍒扮殑緇撴灉鏄細3233錛岄偅涔堟垜浠粡榪囩畝鍗曠殑璺熻〃鍓嶇紑緇勫悎錛屽氨鑳藉璁塊棶榪欎釜琛ㄤ簡銆傞偅涔堟垜浠渶瑕佽闂甀D涓?鐨勫唴瀹規(guī)椂鍊欏摝錛岀粍鍚堢殑琛ㄥ皢鏄細topic_3100銆乺eply_3100錛岄偅涔堝氨鍙互鐩存帴瀵圭洰鏍囪〃榪涜璁塊棶浜嗐?/div>
褰撶劧錛屼嬌鐢╤ash綆楁硶鍚庯紝鏈夐儴鍒嗘暟鎹槸鍙兘鍦ㄥ悓涓涓〃鐨勶紝榪欎竴鐐硅窡hash琛ㄤ笉鍚岋紝hash琛ㄦ槸灝介噺瑙e喅鍐茬獊錛屾垜浠繖閲屼笉闇瑕侊紝褰撶劧鍚屾牱闇瑕侀嫻嬪拰鍒嗘瀽琛ㄦ暟鎹彲鑳戒繚瀛樼殑琛ㄥ悕銆?/div>
濡傛灉闇瑕佸瓨鍌ㄧ殑鏁版嵁鏇村錛屽悓鏍風(fēng)殑錛屽彲浠ュ鐗堝潡鐨勫悕瀛楄繘琛宧ash鎿嶄綔錛屾瘮濡備篃鏄笂闈㈢殑浜岃繘鍒惰漿鎹㈡垚鍗佸叚榪涘埗錛屽洜涓烘眽瀛楁瘮鏁板瓧鍜屽瓧姣嶈澶氬緢澶氾紝閭d箞閲嶅鍑犵巼鏇村皬錛屼絾鏄彲鑳界粍鍚堟垚鐨勮〃灝辨洿澶氫簡錛岀浉搴斿氨蹇呴』鑰冭檻涓浜涘叾瀹冪殑闂銆?/div>
褰掓牴緇撳簳錛屼嬌鐢╤ash鏂瑰紡鐨勮瘽蹇呴』閫夋嫨涓涓ソ鐨刪ash綆楁硶錛屾墠鑳界敓鎴愭洿澶氱殑琛紝鐒舵暟鎹煡璇㈢殑鏇磋繀閫熴?/div>
銆?strong> 浼樼偣hash綆楁硶鐩存帴寰楀嚭鐩爣琛ㄥ悕縐幫紝鏁堢巼寰堥珮 銆戦氳繃
銆?strong> 鍔e娍 銆戞墿灞曟ф瘮杈冨樊錛岄夋嫨浜嗕竴涓猦ash綆楁硶錛屽畾涔変簡澶氬皯鏁版嵁閲忥紝浠ュ悗鍙兘鍦ㄨ繖涓暟鎹噺涓婅窇錛屼笉鑳借秴榪囪繃榪欎釜鏁版嵁閲忥紝鍙墿灞曟х◢宸?/div>
鍥涖佸叾瀹冮棶棰?/strong>
1. 鎼滅儲闂
鐜板湪鎴戜滑宸茬粡榪涜鍒嗚〃浜嗭紝閭d箞灝辨棤娉曠洿鎺ュ琛ㄨ繘琛屾悳绱紝鍥犱負浣犳棤娉曞鍙兘緋葷粺涓凡緇忓瓨鍦ㄧ殑鍑犲崄鎴栬呭嚑鐧句釜琛ㄨ繘琛屾绱紝鎵浠ユ悳绱㈠繀欏誨熷姪絎笁鏂圭殑緇勪歡鏉ヨ繘琛岋紝姣斿Lucene浣滀負绔欏唴鎼滅儲寮曟搸鏄釜涓嶉敊鐨勯夋嫨銆?/div>
2. 琛ㄦ枃浠墮棶棰?/strong>
鎴戜滑鐭ラ亾MySQL鐨凪yISAM寮曟搸姣忎釜琛ㄩ兘浼氱敓鎴愪笁涓枃浠訛紝*.frm銆?.MYD銆?.MYI
涓変釜鏂囦歡錛屽垎琛ㄧ敤鏉ヤ繚瀛樿〃緇撴瀯銆佽〃鏁版嵁鍜岃〃绱㈠紩銆侺inux涓嬮潰姣忎釜鐩綍涓嬬殑鏂囦歡鏁伴噺鏈濂戒笉瑕佽秴榪?000涓紝涓嶇劧媯绱㈡暟鎹皢鏇存參錛岄偅涔堟瘡涓〃閮戒細鐢熸垚涓?
涓枃浠訛紝鐩稿簲鐨勫鏋滃垎琛ㄨ秴榪?00涓〃錛岄偅涔堝皢媯绱㈤潪甯告參錛屾墍浠ヨ繖鏃跺欏氨蹇呴』鍐嶈繘琛屽垎錛屾瘮濡傚湪榪涜鏁版嵁搴撶殑鍒嗙銆?/div>
浣跨敤鍩虹琛紝鎴戜滑鍙互鏂板鍔犱竴涓瓧孌碉紝鐢ㄦ潵淇濆瓨榪欎釜琛ㄤ繚瀛樺湪浠涔堟暟鎹備嬌鐢℉ash鐨勬柟寮忥紝鎴戜滑蹇呴』鎴彇hash鍊間腑絎嚑浣嶆潵浣滀負鏁版嵁搴撶殑鍚嶅瓧銆傝繖鏍鳳紝瀹屽ソ鐨勮В鍐寵繖涓棶棰樸?/div>
浜斻佹葷粨
鍦ㄥぇ璐熻澆搴旂敤褰撲腑錛屾暟鎹簱涓鐩存槸涓緢閲嶈鐨勭摱棰堬紝蹇呴』瑕佺獊鐮達紝鏈枃璁茶В浜嗕袱縐嶅垎琛ㄧ殑鏂瑰紡錛屽笇鏈涘寰堝浜鴻兘澶熸湁鍚彂鐨勪綔鐢ㄣ傚綋鐒訛紝鏈枃浠g爜鍜岃鎯蟲病鏈夌粡榪囦換浣曚唬鐮佹祴璇曪紝鎵浠ユ棤娉曚繚璇佽璁$殑瀹屽叏鍑嗙‘瀹炵敤錛屽叿浣撹繕鏄渶瑕佽鑰呭湪浣跨敤榪囩▼褰撲腑璁ょ湡鍒嗘瀽瀹炴柦銆?/div>
]]>
闈為掑綊閬嶅巻鏂囦歡澶?/title> http://www.shnenglu.com/colys/articles/32395.htmlcolys colys Tue, 18 Sep 2007 01:39:00 GMT http://www.shnenglu.com/colys/articles/32395.html http://www.shnenglu.com/colys/comments/32395.html http://www.shnenglu.com/colys/articles/32395.html#Feedback 0 http://www.shnenglu.com/colys/comments/commentRss/32395.html http://www.shnenglu.com/colys/services/trackbacks/32395.html /// <summary> /// 闈為掑綊閬嶅巻鏂囦歡澶?br> /// </summary> public class UnRecursionDirectoryReader { public event UnRecursionRead OnUnRecursionItemRead; public event UnRecursionRead OnUnRecursionDequeue; public event UnRecursionRead OnUnRecursionEnqueue; public void Read( string Path) { string P_Path = Path; Queue < string > source = new Queue < string > (); bool IsHasChild = true ; // 鏄惁鏈夊瓙鏂囦歡澶?nbsp; while (IsHasChild) { string [] Directorys = System.IO.Directory.GetDirectories(P_Path); string [] Files = System.IO.Directory.GetFiles(P_Path); foreach ( string dir in Directorys) { source.Enqueue(dir); // 鍏ラ槦鍒?寮濮嬭闂枃浠跺す if (OnUnRecursionEnqueue != null ) OnUnRecursionEnqueue(dir, P_Path); } foreach ( string file in Files) { if (OnUnRecursionItemRead != null ) OnUnRecursionItemRead(file, P_Path); // 璁塊棶鏂囦歡 } if (source.Count > 0 ) { string OldPath = P_Path; P_Path = source.Dequeue(); // 鍑洪槦鍒?鏇存崲鏂囦歡澶?/span> if (OnUnRecursionDequeue != null ) OnUnRecursionDequeue(P_Path, OldPath); } else { IsHasChild = false ; } } } } demo:
TreeNode TargetNode = null ; // 鎸囧悜treeview鐨勭粨鐐?/span> Queue < TreeNode > TreeQueue = new Queue < TreeNode > (); // 涓存椂瀛樻斁 private void read() { CYS.UnRecursionDirectoryReader TreeReader = new CYS.UnRecursionDirectoryReader(); TreeReader.OnUnRecursionDequeue += new CYS.UnRecursionRead(TreeReader_OnUnRecursionDequeue); TreeReader.OnUnRecursionEnqueue += new CYS.UnRecursionRead(TreeReader_OnUnRecursionEnqueue); TreeReader.OnUnRecursionItemRead += new CYS.UnRecursionRead(TreeReader_OnUnRecursionItemRead); TreeReader.Read(AppRoot); } private void TreeReader_OnUnRecursionItemRead( string DireName, string Parent) { TargetNode.Nodes.Add(System.IO.Path.GetFileName(DireName)); } private void TreeReader_OnUnRecursionDequeue( string DireName, string Parent) { TargetNode = TreeQueue.Dequeue(); } private void TreeReader_OnUnRecursionEnqueue( string DireName, string Parent) { TreeNode Node = new TreeNode(System.IO.Path.GetFileName(DireName)); TargetNode.Nodes.Add(Node); TreeQueue.Enqueue(Node); }
]]>
濡備綍鑾峰緱鏁版嵁搴撻噷鎵鏈夎〃鐨勫悕瀛楋紙SQL+C#錛? http://www.shnenglu.com/colys/articles/30745.htmlcolys colys Fri, 24 Aug 2007 01:34:00 GMT http://www.shnenglu.com/colys/articles/30745.html http://www.shnenglu.com/colys/comments/30745.html http://www.shnenglu.com/colys/articles/30745.html#Feedback 0 http://www.shnenglu.com/colys/comments/commentRss/30745.html http://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#瀹炵幇鐨勪唬鐮侊細
]]> 涓や釜 DataTable 鍒犳敼鐨勭畻娉?/title> http://www.shnenglu.com/colys/articles/26219.htmlcolys colys Tue, 12 Jun 2007 15:53:00 GMT http://www.shnenglu.com/colys/articles/26219.html http://www.shnenglu.com/colys/comments/26219.html http://www.shnenglu.com/colys/articles/26219.html#Feedback 0 http://www.shnenglu.com/colys/comments/commentRss/26219.html http://www.shnenglu.com/colys/services/trackbacks/26219.html /* 宸茬煡 DataTable (first鍜?nbsp;second) , 涓や釜DataTable涓兘鏈変竴鍒?nbsp;ID,騫朵笖鍊煎敮涓 瑕佹眰:緇勭粐涓涓柊鐨凞ataTable ,婊¤凍浠ヤ笅: 濡傛灉 first 瀛樺湪浜?nbsp;second 涓垯鏇存柊first鐨凬ame鍒椾負second鐨凬ame 濡傛灉涓嶅瓨鍦ㄥ垯鍒犻櫎璇ヨ 濡傛灉 second 鐨勮涓嶅瓨鍦ㄤ簬first 灝辨坊鍔犲埌 first涓?br>*/ using System; using System.Collections; using System.Text; using System.Data; namespace ConsoleApplication1 { class Program { static void Main( string [] args) { Demo d = new Demo(); d.Run(); } } class Demo { DataTable first, second; public void Run() { int i, j; first = new DataTable(); first.Columns.Add( " ID " ); first.Columns.Add( " Name " ); DataRow dr; for (i = 1 ; i < 100 ; i ++ ) { dr = first.NewRow(); dr[ 0 ] = i; dr[ 1 ] = i; first.Rows.Add(dr); } Console.Write( " \n\nold first:\n " ); foreach (DataRow outRow in first.Rows) { Console.Write(outRow[ 0 ].ToString() + " | " + outRow[ 1 ].ToString() + " \n " ); } second = first.Clone(); this .AddToSecond( 1 , 00001 ); this .AddToSecond( 2 , 20000 ); this .AddToSecond( 5 , 55555 ); this .AddToSecond( 100 , 00100 ); this .AddToSecond( 150 , 00150 ); Console.Write( " \n\nold second:\n " ); foreach (DataRow outRow in second.Rows) { Console.Write(outRow[ 0 ].ToString() + " | " + outRow[ 1 ].ToString() + " \n " ); } int len1 = first.Rows.Count; int len2 = second.Rows.Count; ArrayList DeleteRows = new ArrayList(); ArrayList NewRows = new ArrayList(); for (i = 0 , j = 0 ; i < len1 && j < len2; ) { string se = second.Rows[j][ 0 ].ToString(); string fi = first.Rows[i][ 0 ].ToString(); int compar = se.CompareTo(fi); if (compar > 0 ) // second > first { DeleteRows.Add(i ++ ); // 宸茬粡鍒犻櫎鐨?/span> } else if (compar == 0 ) { first.Rows[i][ 1 ] = second.Rows[j][ 1 ].ToString() + " (淇敼) " ; i ++ ; j ++ ; } else { NewRows.Add(j++ ); // 鏂板姞鐨?/span> } } if (i < len1) { // 濡傛灉絎竴涓病鏈夐亶鍘嗗畬,璇存槑鍓╀笅鐨勯兘鏄鍒犻櫎鐨?/span> for (; i < len1; i ++ ) { DeleteRows.Add(i); } } else if (j < len2) { // 濡傛灉絎簩涓病鏈夐亶鍘嗗畬,璇存槑鍓╀笅鐨勯兘鏄娣誨姞鐨?/span> for (; j < len2; j ++ ) { NewRows.Add(j); } } // delete int [] DeleteArray = ( int [])DeleteRows.ToArray( typeof ( int )); i = DeleteArray.Length - 1 ; while (i > - 1 ) { // 浠庡悗闈㈠紑濮嬪垹 first.Rows.RemoveAt(DeleteArray[i]); i -- ; } // add new int [] NewArray = ( int [])NewRows.ToArray( typeof ( int )); for (i = 0 ; i < NewArray.Length; i ++ ) { DataRow drNew = first.NewRow(); drNew[ 0 ] = second.Rows[NewArray[i]][ 0 ]; drNew[ 1 ] = second.Rows[NewArray[i]][ 1 ].ToString() + " (鏂板) " ; first.Rows.Add(drNew); } Console.Write( " \n\nresult second:\n " ); foreach (DataRow outRow in first.Rows) { Console.Write(outRow[ 0 ].ToString() + " | " + outRow[ 1 ].ToString() + " \n " ); } Console.Read(); } private void AddToSecond( object text1, object text2) { DataRow dr24 = second.NewRow(); dr24[ 0 ] = text1; dr24[ 1 ] = text2; second.Rows.Add(dr24); } } }
]]>
c#鏃墮棿鏍煎紡鍖栧瓧絎︿覆璇﹁В http://www.shnenglu.com/colys/articles/25840.htmlcolys colys Fri, 08 Jun 2007 08:29:00 GMT http://www.shnenglu.com/colys/articles/25840.html http://www.shnenglu.com/colys/comments/25840.html http://www.shnenglu.com/colys/articles/25840.html#Feedback 0 http://www.shnenglu.com/colys/comments/commentRss/25840.html http://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) ]]> c#鎿嶄綔excel鍚庡叧闂璭xcel.exe鐨勬柟娉? http://www.shnenglu.com/colys/articles/25265.htmlcolys colys Fri, 01 Jun 2007 03:51:00 GMT http://www.shnenglu.com/colys/articles/25265.html http://www.shnenglu.com/colys/comments/25265.html http://www.shnenglu.com/colys/articles/25265.html#Feedback 6 http://www.shnenglu.com/colys/comments/commentRss/25265.html http://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
]]>榪涘埗浠嬬粛 http://www.shnenglu.com/colys/articles/22816.htmlcolys colys Wed, 25 Apr 2007 11:35:00 GMT http://www.shnenglu.com/colys/articles/22816.html http://www.shnenglu.com/colys/comments/22816.html http://www.shnenglu.com/colys/articles/22816.html#Feedback 0 http://www.shnenglu.com/colys/comments/commentRss/22816.html http://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 = B× 163 + 5 × 162 + 6 × 161 + E× 160 = 11 × 163 + 5 × 162 + 6 × 161 + 14 × 160 浜岃繘鍒舵崲綆椾負鍗佸叚榪涘埗鏄繖鏍?
鍏堟妸浜岃繘鍒朵粠浣庝綅錛堜篃灝辨槸浠庡彸鍒板乏錛夋寜鍥涗綅涓緇勫垎寮錛屽垎鍒版渶鍚庝笉澶熷洓浣嶇殑涔熸寜涓緇勬潵綆椼?/span>鍒嗗ソ浠ュ悗鍐嶆妸姣忕粍鐨勪簩榪涘埗鎹㈢畻鎴愬崄鍏繘鍒訛紝涔嬪悗鍐嶆帴鎹㈢畻濂界殑緇勫悎璧鋒潵灝卞彲浠ヤ簡銆?br> 濡傦細 1101110111010 鍒嗙粍鍚庢槸: 1錛?011錛?011錛?010 姣忕粍鎹㈢畻鎴愬崄鍏繘鍒舵槸1錛孊,B,A 緇勫悎鏄?BBA
]]>Asp.net2.0姘存櫠鎶ヨ〃鐨勪竴浜涚ず渚嬫簮鐮?/title> http://www.shnenglu.com/colys/articles/22554.htmlcolys colys Sat, 21 Apr 2007 07:11:00 GMT http://www.shnenglu.com/colys/articles/22554.html http://www.shnenglu.com/colys/comments/22554.html http://www.shnenglu.com/colys/articles/22554.html#Feedback 0 http://www.shnenglu.com/colys/comments/commentRss/22554.html http://www.shnenglu.com/colys/services/trackbacks/22554.html 鏈榪戝叧娉ㄤ簡涓涓婣sp.net2.0涓按鏅舵姤琛ㄧ殑璧勬枡錛屽彂鐜扮ず渚嬪皯涔嬪張灝戯紙鎬鐤戞槸姘存櫠鎶ヨ〃鍏嶈垂鐨勬瘮杈冨皯鐨勭紭鏁咃級錛屾悳闆嗗埌浜咥sp.net瀹樻柟鐨勮澶氱ず渚嬫簮鐮侊紝璇曚簡鍑犱釜榪樹笉閿欙紝榪欓噷鍙戠粰澶у鍒嗕韓涓涓嬶紙鎴戜粎鎶夾sp.net C#閮ㄥ垎鎻愬嚭鏉ヤ簡錛?br> 鐜VS2005+ACCESS
榪欎簺渚嬪瓙瀹炵幇浜嗘按鏅舵姤琛ㄧ殑鏌ョ湅銆佹煴鐘跺浘鏄劇ず銆佹墦鍗般佸鍑恒佺緝鏀劇瓑鍩烘湰鍔熻兘錛屽鏋滄兂浜嗚В鏇村姣斿璇村埄鐢―ataSet鏂瑰紡銆丳ush銆丳ull絳夋ā寮忛渶瑕佽嚜宸辨洿娣變竴姝ョ殑鐮旂┒浜?
鐢變簬鍏朵腑婧愮爜澶錛?1aspx浠呬粎榪涜浜嗛儴鍒嗚皟嫻嬶紝涓浜涢厤緗枃浠惰鑷鏇存敼
浠g爜鎵撳寘涓嬭澆
]]>
Asp.net鏃犲埛鏂頒腑鏂囬獙璇佺爜璋冭瘯鎴愬姛錛岀壒鍒嗕韓緇欏ぇ瀹?/title> http://www.shnenglu.com/colys/articles/22555.htmlcolys colys Sat, 21 Apr 2007 03:22:00 GMT http://www.shnenglu.com/colys/articles/22555.html http://www.shnenglu.com/colys/comments/22555.html http://www.shnenglu.com/colys/articles/22555.html#Feedback 0 http://www.shnenglu.com/colys/comments/commentRss/22555.html http://www.shnenglu.com/colys/services/trackbacks/22555.html 浠ュ墠鍦ㄧ綉涓婃壘鍒頒簡寰堝鍏充簬涓枃楠岃瘉鐮佺殑鏂囩珷錛堝洯瀛愰噷涔熸湁錛屽ぇ瀹惰嚜宸卞幓鎵懼惂錛夛紝浣嗘槸閮芥病鏈夎皟嫻嬫垚鍔燂紝鎬誨嚭鐜?br>The target '__Page' for the callback could not be found or did not implement ICallbackEventHandler涓嶈兘ICallbackEventHandler鍥炴帀鐨勯敊璇紝鎴戣繘琛屼簡涓涓嬩慨姝e茍鏁寸悊錛岀幇鍦ㄥ彲浠ュ疄鐜頒簡涓枃楠岃瘉鐮佹棤鍒鋒柊鐨勬搷浣滐紝鐜扮壒鎶婂叏閮ㄦ簮鐮佸垎浜粰澶у 鏍稿績婧愮爜
1 public partial class Image : System.Web.UI.Page 2 { 3 protected void Page_Load( object sender, EventArgs e) 4 { 5 CreateCheckCodeImage(GenCode(4 )); 6 } 7 /**/ /**/ /**/ /// <summary> 8 /// '浜х敓闅忔満瀛楃涓?br> 9 /// </summary> 10 /// <param name="num"> 闅忔満鍑哄嚑涓瓧絎?/span></param> 11 /// <returns> 闅忔満鍑虹殑瀛楃涓?/span></returns> 12 private string GenCode( int num) 13 { 14 string str = " 鐨勪竴鏄湪涓嶄簡鏈夊拰浜鴻繖涓ぇ涓轟笂涓浗鎴戜互瑕佷粬鏃舵潵鐢ㄤ滑... " ; 15 char [] chastr = str.ToCharArray(); 16 17 string code = "" ; 18 Random rd = new Random(); 19 int i; 20 for (i = 0 ; i < num; i ++ ) 21 { 22 // code += source[rd.Next(0, source.Length)]; 23 code += str.Substring(rd.Next( 0 , str.Length), 1 ); 24 }25 return code; 26 27 }28 29 /**/ /**/ /**/ /// <summary> 30 /// 鐢熸垚鍥劇墖錛堝鍔犺儗鏅櫔闊崇嚎銆佸墠鏅櫔闊崇偣錛?br> 31 /// </summary> 32 /// <param name="checkCode"> 闅忔満鍑哄瓧絎︿覆 </param> 33 private void CreateCheckCodeImage( string checkCode) 34 { 35 if (checkCode.Trim() == "" || checkCode == null ) 36 return ; 37 Session[" Code " ] = checkCode; // 灝嗗瓧絎︿覆淇濆瓨鍒癝ession涓紝浠ヤ究闇瑕佹椂榪涜楠岃瘉 38 System.Drawing.Bitmap image = new System.Drawing.Bitmap(( int )(checkCode.Length * 21.5 ), 22 ); 39 Graphics g = Graphics.FromImage(image); 40 try 41 { 42 // 鐢熸垚闅忔満鐢熸垚鍣?/span>43 Random random = new Random(); 44 45 // 娓呯┖鍥劇墖鑳屾櫙鑹?/span>46 g.Clear(Color.White); 47 48 // 鐢誨浘鐗囩殑鑳屾櫙鍣煶綰?/span>49 int i; 50 for (i = 0 ; i < 25 ; i ++ ) 51 { 52 int x1 = random.Next(image.Width); 53 int x2 = random.Next(image.Width); 54 int y1 = random.Next(image.Height); 55 int y2 = random.Next(image.Height); 56 g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2); 57 }58 59 Font font = new System.Drawing.Font( " Arial " , 12 , (System.Drawing.FontStyle.Bold)); 60 System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush( new Rectangle( 0 , 0 , image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2F , true ); 61 g.DrawString(checkCode, font, brush, 2 , 2 ); 62 63 // 鐢誨浘鐗囩殑鍓嶆櫙鍣煶鐐?/span>64 g.DrawRectangle( new Pen(Color.Silver), 0 , 0 , image.Width - 1 , image.Height - 1 ); 65 System.IO.MemoryStream ms = new System.IO.MemoryStream(); 66 image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);67 Response.ClearContent();68 Response.ContentType = " image/Gif " ; 69 Response.BinaryWrite(ms.ToArray());70 71 } 72 catch 73 { 74 g.Dispose();75 image.Dispose();76 }77 78 }
甯屾湜璇ユ簮鐮佸彧鏄竴涓姏鐮栧紩鐜夌殑浣滅敤錛屼綘鍙互榪涜淇敼錛屾瘮濡傝鏀逛腑鏂囧瓧搴擄紝瀛椾綋鑳屾櫙鍣煶絳夌瓑 榛樿甯愬彿瀵嗙爜鍧囦負51aspx錛岃繖閲岀敤鎴風(fēng)櫥褰曞彧鏄竴涓獙璇佺殑渚嬪瓙錛屾病鏈夊叾浠栧姛鑳?/p>
浣滆?1aspx 瀹屾暣婧愮爜涓嬭澆鍦板潃http://www.51aspx.com/CV/ZhongWenYanZhengMa
]]> 澶氭枃浠朵笂浼犵ず渚嬫簮鐮?榛樿鏀寔鍚勭綾誨瀷錛屽寘鎷浘鐗? http://www.shnenglu.com/colys/articles/22558.htmlcolys colys Tue, 10 Apr 2007 03:45:00 GMT http://www.shnenglu.com/colys/articles/22558.html http://www.shnenglu.com/colys/comments/22558.html http://www.shnenglu.com/colys/articles/22558.html#Feedback 0 http://www.shnenglu.com/colys/comments/commentRss/22558.html http://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(); } } }
]]> JavaScript涓嶤# Windows搴旂敤紼嬪簭浜や簰 http://www.shnenglu.com/colys/articles/20058.htmlcolys colys Sun, 18 Mar 2007 06:06:00 GMT http://www.shnenglu.com/colys/articles/20058.html http://www.shnenglu.com/colys/comments/20058.html http://www.shnenglu.com/colys/articles/20058.html#Feedback 0 http://www.shnenglu.com/colys/comments/commentRss/20058.html http://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 )]
public partial class Form1 : 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 = new Uri (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 = new object [1];
objects[0] = "C# 璁塊棶JavaScript 鑴氭湰" ;
webBrowser1.Document.InvokeScript("messageBox" , objects);
聽
瀹屾暣浠g爜濡備笅錛?/span>
聽1 聽[System.Runtime.InteropServices.ComVisibleAttribute( true )] 聽2 聽聽3 聽public 聽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 聽聽聽聽聽 private 聽 void 聽button1_Click( object 聽sender,聽EventArgs聽e) 28 聽29 聽聽聽聽 { 30 聽31 聽聽聽聽聽聽聽聽聽 // 聽璋冪敤JavaScript鐨刴essageBox鏂規(guī)硶錛屽茍浼犲叆鍙傛暟 32 聽33 聽聽聽聽聽聽聽聽聽 object []聽objects聽 = 聽 new 聽 object [ 1 ]; 34 聽35 聽聽聽聽聽聽聽聽聽objects[ 0 ]聽 = 聽 " C#璁塊棶JavaScript鑴氭湰 " ; 36 聽37 聽聽聽聽聽聽聽聽聽webBrowser1.Document.InvokeScript( " messageBox " ,聽objects); 38 聽39 聽聽聽聽聽} 40 聽41 聽聽聽聽聽 // 聽鎻愪緵緇橨avaScript璋冪敤鐨勬柟娉?/span>42 聽43 聽聽聽聽聽 public 聽 void 聽MyMessageBox( string 聽message) 44 聽45 聽聽聽聽聽{ 46 聽47 聽聽聽聽聽聽聽聽聽MessageBox.Show(message); 48 聽聽聽聽聽} 49 聽} 50 聽
]]>
久久婷婷五月综合色高清 |
三上悠亚久久精品 |
免费精品国产日韩热久久 |
一本色道久久88—综合亚洲精品 |
欧美激情精品久久久久久久九九九
|
精品国产日韩久久亚洲 |
欧美久久久久久 |
色欲综合久久躁天天躁蜜桃 |
国产精品美女久久久m |
久久夜色tv网站 |
亚洲国产成人精品久久久国产成人一区二区三区综
|
色婷婷噜噜久久国产精品12p |
国产精品久久久久久五月尺 |
欧美熟妇另类久久久久久不卡 |
99国产精品久久 |
久久久无码精品亚洲日韩软件 |
久久精品一区二区三区AV |
2021精品国产综合久久 |
国产成人精品久久综合
|
国产精品久久久久影视不卡 |
日本一区精品久久久久影院 |
久久精品国产亚洲5555 |
中文字幕亚洲综合久久菠萝蜜
|
日批日出水久久亚洲精品tv |
无码人妻久久一区二区三区 |
91性高湖久久久久 |
囯产极品美女高潮无套久久久 |
国产成人久久精品一区二区三区
|
天堂久久天堂AV色综合 |
青青草原综合久久大伊人精品 |
国产精品一区二区久久精品涩爱
|
伊人色综合九久久天天蜜桃 |
久久66热人妻偷产精品9 |
久久99精品九九九久久婷婷 |
国产女人aaa级久久久级 |
久久久久久久波多野结衣高潮 |
国产精品久久久久影院嫩草 |
人妻无码精品久久亚瑟影视 |
色综合久久中文综合网 |
无码精品久久久天天影视 |
久久99精品久久久久久不卡 |