發表文章

目前顯示的是 2010的文章

TOP N rows for a grouped query

方法一 SELECT ac.* FROM mytable AC LEFT JOIN mytable A ON A.id = AC.id WHERE A.id IN ( SELECT TOP 3 id FROM mytable A WHERE A.category = AC.category ORDER BY A.createtime DESC ) ORDER BY AC.category 方法二(使用Having) SELECT c.*, d.ranknum FROM mytable AS c INNER JOIN ( SELECT a.id, COUNT(*) AS ranknum FROM mytable AS a INNER JOIN mytable AS b ON (a.category = b.category) AND (a.num <= b.num) GROUP BY a.id HAVING COUNT(*) <= 3 ) AS d ON (c.id = d.id) ORDER BY c.category, d.ranknum SELECT AC.* FROM historypath AC INNER JOIN (SELECT ROW_NUMBER() OVER(PARTITION BY A.car ORDER BY A.id) AS RowNumber, A.car FROM historypath A ) A ON A.car = AC.car WHERE A.RowNumber <= 3 SELECT& AC.* FROM historypath AC CROSS APPLY (SELECT TOP 3 id FROM historypath A WHERE A.car = AC.car ORDER BY A.id desc ) A ORDER BY A.id desc

W3C 測試瀏覽器 HTML5 相容性結果,IE9表現最符合標準

全球資訊網協會(Worldwide Web Consortium,W3C)是HTML5的標準制定組織,最近公告一份各家瀏覽器 對HTML5 相容性測試結果。 W3C說明,該測試是依據HTML 5規格及官方認可的測試工具,測試HTML5的7項功能,包括屬性(attributes)、音訊(audio)、繪圖功能(canvas)、可根據類別查詢元素的getElementsByClassName、外來內容模式(foreigncontent)、影片(video)及xhtml5等。用來進行測試的都是各大瀏覽器的最新版本,諸如 IE 9 第六個平台預覽版、 Google Chrome 7.0測試版 、 Firefox 4第六個測試版 、 Opera 10.6 及 Safari 5.0 等。 測試結果發現,IE 9在除了canvas及getElementsByClassName之外,拿下了5項功能百分之百符合HTML 5規格的成績,相較於Google Chrome的4項、Firefox及Opera的3項,以及Safari的兩項,IE表現非常出色。 此資料顯示目前 Internet Explorer 9 是目前HTML5相容性最佳的瀏覽器,但是Chrome、Firefox、Opera和Safari等瀏覽器也不會差距太大,報告也顯示微軟對於對HTML5支援相容性部分展現其決心。   Feature Internet Explorer Platform Preview 6 Google Chrome 7.0.517.41 beta Firefox 4 Beta 6 Opera 11.00 alpha (build 1029) Safari Version 5.0.2 (6533.18.5) attributes 1 1 1 1 1 audio 1 1 1 1 1 canvas 0.895

ASP.NET Modal (遮蔽頁面)

圖片
Modal是用在當網頁可能需要一段執行時間才能完成,在執行期間要避免使用者誤按頁面功能,因為誤觸頁面原件可能導致發生重複插入資料,意外中止執行或是其他因素導致發生資料錯誤等情況。Modal 是在網頁上面產生一個Popup視窗或是一個遮蔽頁面,遮蔽頁面原件,待頁面執行完畢後才清除遮蔽,以達到遮蔽頁面原件的功能。 .aspx <asp:updateprogress associatedupdatepanelid="UPDATEPANELID" id="updateProgress" runat="server"> <progresstemplate> <div id="progressBackgroundFilter"></div> <div id="processMessage"> Loading...<br /><br /> <img alt="Loading" src="images/ajax-loader.gif" /> </div> </progresstemplate> </asp:updateprogress> CSS #progressBackgroundFilter { position:fixed; top:0px; bottom:0px; left:0px; right:0px; overflow:hidden; padding:0; margin:0; background-color:#000; filter:alpha(opacity=50); opacity:0.5; z-index:1000; } #processMessage { position:fixed; top:30%; left:43%; padding:10px; width:14%; z-index:1001; background-color:#fff; border:solid 1px #000; }

.NET實用工具-Paint.NET

圖片
Paint.NET (免費)是Windows平台上的圖像編輯軟體,在台灣有人叫他「大畫家」,可想而知他和小畫家的關係。他的特點是簡單、直覺和創新的使用者介面和支援圖層概念,無限次數的返回操作,豐富的特效,是個強大好用的工具。他原本是預計用來取代內建於Windows的繪圖軟體「小畫家」,但是後來發展成強大的圖形編輯軟體,具備裁切功能、圖層概念、濾鏡效果、特效且和其他專業的圖形編輯軟體做比較一點也不遜色,如 Adobe Photoshop ,Corel Paint Shop Pro 和 GIMP ,重點是他是開放原始碼的免費軟體。 下載位置 正體中文化檔案 工具截圖 特點 簡單、直覺和創新的使用者介面 良好的效能,快速的啟動執行 使用圖層概念 系統需求 Windows 7 (建議),     或 Windows XP SP3,    或 Windows Vista SP1 (建議 SP2 ) 800MHz processor (建議雙核心處理器以上) 512MB RAM 1024 x 768 螢幕解析度 200+ MB 硬碟空間 選項: 64位元模式需要 64位元處理器和64位元作業系統

.NET常用的記錄工具

.NET常用的記錄工具 Log4net Enterprise Library 裡面的 Logging Application Block NLog .NET Core NLog使用路由表(routing table)進行設定,但log4net使用階層性的appender設定,這樣就讓NLog的配置文件非常容易閱讀,並便於今後維護。 紀錄位置 Files - 單一或多檔,並具自動命名與封存功能 Event Log - 本機或遠端的事件記錄器 Database - 儲存於資料庫中 Network - 使用TCP, UDP, SOAP, MSMQ 協定 Command-line console - 包含有顏色顯示的訊息 E-mail - 錯誤發生時使用郵件接收 ASP.NET trace Log4Net Log 等級 Debug - 偵錯訊息, 比trace較不詳盡,一般在上線環境不會啟用。 Info - 資訊訊息,正常是可以在上線環境啟用 Warn - 警告訊息,一般指的是可以回復或是暫時性的錯誤 Error - 錯誤訊息 Fatal - 嚴重錯誤 Logging Application Block Log 等級 Activity Tracing Verbose Information - 資訊訊息,正常是可以在上線環境啟用 Warning - 警告訊息,一般指的是可以回復或是暫時性的錯誤 Error - 錯誤訊息 Crital - 嚴重錯誤 NLog Log 等級 Trace - 非常詳細的紀錄, 可能包含一些非常詳細的資訊,如協定表頭。這個紀錄等級一般只在開發環境啟用。 Debug - 偵錯訊息, 比trace較不詳盡,一般在上線環境不會啟用。 Info - 資訊訊息,正常是可以在上線環境啟用 Warn - 警告訊息,一般指的是可以回復或是暫時性的錯誤 Error - 錯誤訊息 Fatal - 嚴重錯誤 .NET Core Trace (Log Level = 0) Debug (Log Level = 1) Information (Log Level = 2) Warning (Log Level =

好用的Gooogle Storage桌面程式CloudBerry

圖片
CloudBerry 讓使用 Google Storage 更加容易,CloudBerry是使用.NET C#開發的桌面應用程式。提供類似檔案總管的工具可以方便管理您的檔案,並執行基本的檔案操作,如新增刪除Buckets,建立刪除資料夾,上下傳檔案,修改權限等等功能。 目前最新版本是 1.1: 支援 Google Groups 主要特色: 註冊 並連到其他Google Storage 帳號 同時多個Google Storage帳號運行 建立,瀏覽,和刪除Google Storage檔案 建立,瀏覽,和刪除資料夾 在Google Storage和您本機電腦間進行複製和移動檔案 建立 Buckets 列出 Buckets 刪除 Buckets 上傳/下載檔案 複製/ 移動檔案 刪除檔案 檔案重新命名 檢視檔案 生成檔案連結 檢視檔案屬性 背景執行複製/移動 同步目錄 從檔案總管複製檔案 記住 使用者設定 內建回饋表單 自動檢查更新 系統需求: Windows XP/2003/Vista/7 Microsoft .NET Framework 2.0 Google Storage 帳號 另外他有提供付費版本,以下是付費版與免費版差異 特色 FREEWARE PRO Google Storage 帳號數量 1 無限 壓縮 - 加密 - 搜尋 - 大量傳檔 - 多執行緒 - FTP

ASP.NET寄發加密加簽信件

圖片
在早期ASP.NET 1.0寄發郵件使用 System.Web.Mail ,在.NET Framework 2.0之後建議改用 System.Net.Mail 命名空間下的郵件寄發方式,但郵件寄送部分仍不能使用x.509憑證的加密加簽郵件,然而有熱血的開發人員在Open Source的 Code Project 網站上發表了的信件加簽加密函式庫 Cpi.Net.SecureMail library 方便寄送S/MIME的郵件 匯入憑證 在ASP.NET中因權限考量,要寄發加簽加密郵件要匯入 本機電腦 的憑證儲存區裡的 我的憑證 區,而不直接讀取實體憑證檔案。 在執行中鍵入mmc 執行「主控台」程式 在選單中的檔案-> 新增嵌入式管理單元 接著新增 [憑證] -> [電腦帳戶] -> [本機電腦] 在憑證(本機電腦) –> 個人->憑證案燕建選擇匯入 匯入您的憑證檔案,即完成憑證匯入 授權憑證的使用權利給 ASP.NET 執行時的那個身份識別 另外因IIS預設是使用網路服務(Network Service)去執行,但是網路服務(Network Service)預設是無法讀取本機電腦裡的憑證,可以改成本機服務(Local Service)方式去執行,不過不建議如此,因本機服務(Local Service)權限太大,所以可能會有安全性的風險,建議只有修改要讀取的憑證給網路服務(Network Service)權限即可,可使用 Windows HTTP Services Certificate Configuration Tool (WinHttpCertCfg.exe),下載安裝後,預設會安裝在C:\Program Files\Windows Resource Kits\Tools目錄下,接著到執行CMD指令叫出命令提示列,執行以下指令 cd /d C:\Program Files\Windows Resource Kits\Tools winhttpcertcfg -g -c LOCAL_MACHINE\MY -s "MyCertificate" -a "Network Service" 其中"MyCertificate"就是你的憑證名稱(Subject Name)

使用 .NET C# 存取 Google Storage

Google Storage 是 google I/O 2010 發布的服務,目前僅提供測試服務,須取得邀請函才能使用。Google Storage的結構大致上是先建立budget,在budget下面可以建立目錄或放置檔案,檔案可以設定其存取權限是否為公開。目前 Google Storage 提供 Restful api 和 python 的官方程式存取方法,其他語言目前並不提供,不過網路上有熱心人士將它作成各語言的存取api,如C# 有 SharpGs ,開始用程式呼叫前須先取得Google Storage存取金鑰,在 Google Storage首頁 的 Manage your developer keys取得。 C#程式呼叫使用方法如以下簡介 using System; using SharpGs; using System.Collections.Generic; namespace SharpGsDemo { class Program { //存取公私鑰 https://sandbox.google.com/storage/m/manage //AuthKey 公鑰 //AuthSecret 私鑰 private const string AuthKey = @"GOOGP6666666666666666"; private const string AuthSecret = @"usdg/dfhEuiWfwzr4RGfgjdgj/sg+eVojTgDsg"; static void Main() { //建立連接端 var client = GoogleStorageFactory.Create(AuthKey, AuthSecret); //隨機建立Bucket for (var i = 0; i < 10; i++) { // Create a bucket1 client.Creat

ASP.NET Request 驗證

ASP.NET內建提供基本的 request 驗證在表單提交或 postback處理時。每個網頁預設是有 Request 驗證,但是在不同版的 .NET Framework 有不同的處理方法。 ASP.NET 1.1 Request 驗證 Filter "&#" Filter ‘<’ then alphas or ! or / (tags) Filter "script:" Filter on handlers (onXXX=) Filter “expression(“ Ignore elements named "__VIEWSTATE" ASP.NET 2.0 Request 驗證 Filter "&#" Filter ‘<’ then alphas or ! or / (tags) Ignore elements with names prefixed with double underscore (__) ASP.NET 4.0 Request 驗證 所有Request皆執行驗證,HttpHandler和HttpModules甚至靜態網頁 ValidateRequest 設定 單一網頁設定: <%@ Page validateRequest="true|false" %> 整個應用程式設定: <configuration> <system.web> <pages validateRequest="true|false" /> </system.web> </configuration> .NET 4.0 使用2.0方式驗證 <system.web> <httpRuntime requestValidationMode="2.0"/> </system.web>

Google Storage工具

Google Storage 於 Google I/O 2010 中發表,Google Storage是一個功能強大的服務,類似 Amazon S3 的網路檔案儲存的服務,提供檔案儲存,管理和分享等服務,你可以上傳任何大小和類型的檔案。但是目前還處在測試階段,需要邀請碼才能使用,這是 申請網頁 ,基本上有申請都會通過,申請時需要填寫所需容量、流量和request 次數等資訊。 開始使用Google Storage服務時,你可以建立Budget,資料夾和檔案,並上傳,下載和分享檔案,但Google Storage bucket的命名有許多限制,比如字元長度必須3~63之間長度,只能使用小寫字母,數字和_或-等字元,另外不允許建立goog開頭名稱和IP形式名稱如(192.168.5.4),此外如果你創建的Bucket是一個網域名稱的形式(如 www.taicomjp.info ),它會要求你認證這個網域名稱,證明這個網域名稱屬於你,才允許你建立! Google 目前提供了Web的管理工具( Google Storage manager )和客戶端的本文模式工具( GSUtil Tool ),但是Google的web管理工具不支持IE瀏覽器,本文模式工具也不能在Windows平台上執行,且操作不是很方便,對開發人員而言,目前Google只對 python提供相關存取的api ,而其他語言目前僅能使用Restful方式存取,為此許多組織開發了許多第三方的工具。 - Boto *: a Python interface to GS and S3 - CloudBerry : a file manager for Windows - Cyberduck : a browser for Mac - Dasein Cloud : an open source Java API - Data Nucleus : JDO/JPA plug in - Gladinet : maps network drives and provides AFS support - gstore : a Ruby client library - SharpGs : a C# library

Subversion 安裝教學

圖片
Subversion ,簡稱 SVN ,是一個開放原始碼的 版本控制系統 ,相對於的 CVS ,採用了分支管理系統,它的設計目標就是取代CVS。是目前網際網路原始碼版本控制系統主流。 準備工具 Windows SVN (基本上只要安裝此工具即可) TortoiseSVN (SVN圖形化用戶端介面工具)   安裝伺服器端 Windows svn安執行安裝即可 安裝 Svn Server Service sc create subversion_service binpath= "E:\Program Files\Subversion\bin\svnserve.exe --service -r E:\SVNRepos" displayname= "Subversion Repository" depend= Tcpip start= auto ps移除 Svn Server Service sc delete subversion_service 啟動即完成Svn Service服務 選擇你要放置Repository的地方槽。 以下面的例子而言,我們在E槽下面建立了一個名為svn_repo的目錄。 透過您的檔案管理員,在E:\svn_repo的Icon上面,按下滑鼠右鍵後,選擇TortoiseSVN->Create repository here。 接著,您會看到如下的一個視窗,這個視窗主要是問您,您希望使用的Repository資料庫格式是FSFS還是BDB。基本上,請選擇FSFS就可以了。按下OK按鈕後,您將可以看到下一個畫面。 SVN repository已經成功的建立了。接下來就是要把您的專案匯入進來。之後當需要使用這個repository時,就可以使用 file:///E:/SVN_REPO 表示它。SVN就是透過這種URL的方式到如何與Repository取得聯繫。各種URL的格式如下: file:///磁碟機|/repository所在目錄/子目錄 http://帳號@伺服器名

SQL SERVER 列出所有資料表(Table)

列出所有資料表(Table) USE YourDBName GO SELECT * FROM sys.Tables GO 列出所有檢視表(View) SELECT * FROM sys.views GO 列出所有預存程式(Stored Procedure) SELECT * FROM sys.procedures; 列出所有限制(Constraint) SELECT * FROM sys.objects WHERE type_desc LIKE ‘%CONSTRAINT’

SQL SERVER 列出所有資料庫指令

----SQL SERVER 2005 System Procedures EXEC sp_databases EXEC sp_helpdb ----SQL 2000 Method still works in SQL Server 2005 SELECT name FROM sys.databases SELECT name FROM sys.sysdatabases

Visual Studio 2010 宣傳廣告

中國微軟為Visual Studio 2010 宣傳所做的廣告 VS2010 做你下一行的 Code VS2010 讓愛延長 VS2010 幸福要敏捷 VS2010 為愛 Debug VS2010 讓愛編譯通過