七月 21
最近參考了幾個統計圖表控件包,OpenSource 的有 ZedGraph,Nplot 等,但是相比之下還是 ZedGraph 強大,方便一些,其他的感覺還是半成品。
收費的套件就多了,只要是商業的報表開發工具都有統計圖表的功能,水晶報表,ActiveReport,Reporting Service,不過要方便,功能單一的還是 dotnetCharting。下面主要從 winform 使用上說說 ZedGraph 和 dotnetCharting。
從效果上說 dotnetCharting 確實沒的說,水晶式效果很是炫目,這應該是其最大的賣點。為了便於開發者學習,帶了各種效果的示例代碼。DotnetCharting 在產生統計圖的時候需要設置一個臨時目錄,用來保存產生的統計圖的圖片,dotnetCharting 的圖表效果好,很大程度上是因為它生成了圖片,然後將其顯示在界面上。當然,作為代價,它犧牲了性能。同時,它不支持縮放,雖然你可以通過更改坐標軸的刻度來實現這個功能,但是性能上就差了很多。
如果你對性能要求不高,dotnetCharting 是非常好的選擇。
ZedGraph 最大的賣點在哪裡?應該是OpenSource,你可以修改代碼以適應自己的需求,例如:ZedGraph 在畫線型圖的時候,線條沒有使用抗鋸齒,你只要修改 Line類的 Default 結構中的預設設置就可以了。和 dotnetCharting 相比,ZedGraph 的效果要差一些,不過,要是自己調整的好,也還不錯,但是 ZedGraph 的優勢不在這裡。
由於 ZedGraph 是使用 GDI+ 直接在 Canvas 上進行描畫,所以,性能得到了保證,如果你改變坐標軸的刻度,和 dotnetCharing 相比,ZedGraph 的反應速度是很快的。基於此,ZedGraph 提供了很重要的縮放和拖動功能,你可以通過鼠標滾輪進行方法,縮小圖表,可以通過鼠標中鍵來拖動,非常方便。
對於類似股市的實時走勢,CPU 使用率等實時變化的數據,使用 ZedGraph 也可以很方便地作到。ZedGraph 在基於 PointPairList 作畫,所以你只要在 PointPairList 這個集合中添加新的數據,然後進行重畫就可以實現了,對於性能,上面說了,由於是直接使用 GDI+,性能是比較好的,我測過 400 個點是沒問題的。所以,ZedGraph 對於實時要求比較強的需求也是可以應對的。
總結的來說,dotnetCHARTING 產出的圖表效果好,但是性能方面較差,對實時要求強的需求不適應。ZedGraph 開放原始碼,效果比起 dotnetCHARTING 差,但是性能好,能適應有實時要求的數據。
本文章轉貼於:http://blog.csai.cn/user1/17072/archives/2009/37706.html
七月 21
這是一套綠色軟體,開放原始碼,免安裝,支援中文系統,CrystalDiskInfo 有助於我們瞭解目前電腦中工作的硬碟,健康情形如何,其實最主要我還是看「使用時間」的多少,來判定硬碟的狀況如何!
下載:CrystalDiskInfo 2.1.0
七月 16
如果你有使用過 Linux 上的 Locate 搜尋功能,一定對此超快的檔案搜尋感到記憶深刻,Locate 的運作原理是在本機上建立一個索引檔,在找檔案的時候,參考此索引檔,所以才會很快,不過也有一個缺點,索引檔必須常更新,已確保找出來的檔案是正確的,在 Linux 上我們必須藉助 Script 、或排程來達成自動更新的效果。
現在Win32上也有類似的搜尋軟體,Locate32 它的原理,也是建立索引檔來搜尋,內見排程功能,可以設定自動更新。建議每天至少更新一次。
我們可以丟掉 Windows 內建的搜尋了。
官方下載:http://locate32.net/index.php
中文化下載:http://portable.easylife.tw/397

七月 16
雖然軟碟機已經逐漸在PC上消失,但是在某些場合還是必須要用到,例如我最近遇到的問題,我報名丙級軟體設計,簡章附的資料必須在軟碟機中執行,搞的我一個頭兩個大,去買一個也不是,不用軟碟練習也不是。
幸好找到這一個 Virtual Floppy Drive(VFD虛擬軟碟機),可以在電腦上模擬一個A:磁碟機,可讀可寫,方便的很。
官方下載:http://chitchat.at.infoseek.co.jp/vmware/vfd.html
一、解開壓縮後執行,先切換到 Driver 頁面,在 Driver File 選擇目錄下的 vfd.sys,然後選擇 Install 安裝,接著點選 Start,虛擬裝置就開始運行了。

二、接著切換到 Driver0 頁面,點選上方的 Driver Letter 的 Change 按鈕,選擇裝置的代號,一般預設為 A 槽,按下 OK 選擇完成後,就可以在「我的電腦」裡,看見 3.5軟碟機(A:) 出現了。
三、建立磁碟機的映像檔,同樣在 Driver0 頁面,點選下方 Open/Create 按鈕,在開啟的新視窗中,點選 Create 按鈕,建立映像檔,這時候進入「3.5軟碟機(A:)」中,就可以存取檔案了。

六月 22
其實 WinForm 跟 WebForm 在連結資料庫方面其實差不了太多。
C#:
-
protected void Page_Load(object sender, EventArgs e)
-
{
-
//第一:連結SQL資料庫
-
string connstr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\test_Data.MDF;Integrated Security=True;Connect Timeout=30;User Instance=True";
-
SqlConnection conn =
new SqlConnection
(connstr
);
-
conn.Open();
-
-
//第二:執行SQL指令
-
string sqlstr = "select * from test";
-
SqlCommand cmd =
new SqlCommand
(sqlstr,conn
);
-
-
SqlDataReader dr = cmd.ExecuteReader();
-
-
//第三:印出資料
-
while (dr.Read())
-
{
-
Response.Write("文章編號:" + dr["id"] + "<br>");
-
Response.Write("日 期:" + dr["test_time"] + "<br>");
-
Response.Write("文章標題:" + dr["title"]);
-
Response.Write("<hr>");
-
}
-
-
//第四:關閉連線
-
cmd.Cancel();
-
dr.Close();
-
conn.Close();
-
conn.Dispose();
-
}
文章參考於:ASP.NET專題實務-適用C# 作者:周棟祥
六月 21

在 VS20085 工具列中,AJAX 擴充功能這個選項是內建的,不過在 VS2005 中並沒有,現在坊間的書籍大多以 VS2008 為主,會常用到 AJAX 功能,不過如果不更換版本,在 VS2005 中也可以安裝 AJAX 擴充功能。你必須下載以下檔案(約1MB多)安裝完成後,AJAX 擴充功能就會出現了。
下載檔案:
ASP.NET AJAX 1.0
六月 20
用 Visual Studio 久了會發現一個問題,就是會越來越依賴這個開發工具,因為它什麼都幫你處理好了,程式指令永遠只記得前面三個字母,因為VS有指令自動補齊,連接資料庫有精靈幫忙,管你是 MSSQL 還是 Access,全部按一按搞定,還順便幫你把 Insert、Update、Select、Delete…等 SQL 四大溝通指令寫好了,程式就這麼在拖拉、設定之間開發完成,有的甚至不用寫任何一行指令。
以前我很排斥用精靈方式來寫程式,堅持一字一句 Key 出來,不過我發現這會花費很多時間,舉個例子來說好了,寫一個簡單的通訊錄,不包括建資料庫的時間,用傳統手 Key 方式,我大概要花上半天的時間,因為我要拉控制項、設定控制項名稱、寫資料庫連接、資料繫結、資料配接器的 Insert、Update、Select、Delete 四個屬性質、設定 BindSource 導覽列…等,寫完天都黑了。
不過如果換成精靈模式寫,大概只要30分鐘就可以搞定,在產出力方面,精靈模式大勝,不過在程式靈活度、和可讀性來說,還是傳統手 Key 方式略勝一籌。
站在公司的立場,當然希望程式設計師的產出力越多越好,有些小地方還是用拖拉的就好,藝術這種東西不能當飯吃,VS是一個很邪惡的東西,因為他讓新手認為寫程式是一件很簡單的東西,讓老手離不開它。
六月 19
C#:
-
前面補0的數字字串
-
String.Format("{0:0000}", 157); // 輸出 0157
-
-
前後都補0的數字字串
-
String.Format("{0:0000.0000}", 157.42); // 輸出 0157.4200
-
-
每3位數(千)加逗號
-
(String.Format("{0:0,0}", 38560); // 輸出 38,560
-
-
格式化電話號碼
-
(String.Format("{0:(###) ###-####}", 8005551212); // 輸出 (800) 555-1212
-
-
金額的表示
-
(String.Format("{0:$#,##0.00;($#,##0.00);Zero}", 0); // 這個會顯示 Zero
-
(String.Format("{0:$#,##0.00;($#,##0.00);Zero}", 1243.50); // 這個會顯示 $1,243.50
依照上面格式範例 ~ 套用到我的報表要呈現的欄位 ~ 如以下 ~
C#:
-
private void DataGrid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
-
{
-
if (e.Item.ItemIndex.ToString() != "-1")
-
{
-
e.Item.Cells[0].Text = string.Format("{0:#,0.0}",double.Parse(e.Item.Cells[3].Text.ToString()));
-
}
-
}
參考資料來源:
http://blog.stevex.net/index.php/string-formatting-in-csharp/
六月 18
伺服器應用程式無法使用
您嘗試在此 Web 伺服器上存取的 Web 應用程式目前無法使用。
請按 Web 瀏覽器中的 [重新整理] 按鈕,再試一次。
系統管理員注意:
Web 伺服器的應用程式事件記錄檔中的
錯誤訊息詳細說明了這項特定要求失敗原因。
請檢閱這個記錄項目,查看造成錯誤的原因為何。
終於找到
方法解決了~"~
http://blog.xuite.net/giin/blog/13640747
請直接到
[開始]→[執行]→輸入
[ C:\WINDOWS\Microsoft.Net\Framework\v2.0.50727\aspnet_regiis.exe -i ] 就行了
最後確認一下預設的IIS執行環境
IIS→預設網站→內容→ASP.NET→確認 版本2.0.50727
應該就OK了!!