2011年6月13日 星期一

DataSet Tips

DataSet 是一個儲存在記憶體內的資料庫,它擁有很多類似資料庫的操作功能,例如:

1. 兩表合併(Merge Table)
Table1.Merge(Table2, False)
有時候,這個方法會因為資料結構造成失敗,此時可改用DataRelation,將兩個Table Join。
Dim mDataRelation As New DataRelation("TempJoin", Table2Columns, Table1Columns, False)
ds.Relations.Add(mDataRelation)
' jj 是Table2填入Table1的起始欄位
For Each mRow As DataRow In Table1.Rows
For ii = jj To Table2.Columns.Count - 1
mRow(jj+ii) = mRow.GetParentRow("TempJoin")(ii)
Next
Next

2. 排序(Sort)
Table1.DefaultView.Sort(Field1)
For i = 0 To Table1.DefaultView.Count - 1
aa=Table1.DefaultView(i).Item("Field2")
next

3. 篩選(Filter)
Dim rows As DataRow() = dtTopicid.Select("Field1='aaa'")

4. 衍生欄位(Derived Field)
Dim col As DataColumn
col = dt.Columns.Add("ExpCol", GetType(Boolean), expr)



另外,還有一些小技巧,與大家分享:
1. 欄位值大小寫有區別(Case Sensitive)
Table1.CaseSensitive = True

2. 設定額外屬性(Custom Property)
column.ExtendedProperties.Add("TimeStamp", DateTime.Now)

3. 取唯一值(Unique Values)
Dim dtDistinct As DataTable = Table1.DefaultView.ToTable("Table1", True, "Field1")

2011年4月13日 星期三

以內碼設定字串值

Q:如何列印所有的中文字或全行字?

A:
For i As Integer = 0 To 20901
sb.Append(ChrW(&H4E00 + i))
Next
** Console mode 無法顯示部份字元,例如ㄎ,應該是DOS Mode的中文字集不足的問題。

2011年1月25日 星期二

VS 安裝專案的注意事項

產生安裝專案時有兩件事,設定常常找不到:

  1. 要在桌面產生一個捷徑
  2. 要使用.net framework 2.0

在桌面產生一個捷徑

不能在【使用者的桌面】按滑鼠右鍵增加一捷徑,這樣會使捷徑指到執行檔所在目錄,而非執行檔本身;必須在【應用程式資料夾】的【主要輸出】按滑鼠右鍵增加一捷徑,再將該捷徑拖曳到【使用者的桌面】。

要使用.net framework 2.0

除了執行檔專案建置要設成.net framework 2.0外,在安裝專案的Mocrosoft .net Framework項目,須Double Click後,設定.net framework 2.0,如下圖。

1

2

2010年11月4日 星期四

在同一個目錄建立兩個 .net 專案


問題
通常寫一個Library後,為了測試並說明使用方法,通常會希望再開一個專案,如果將這個專案建在其他目錄,管理上並不方便,另外,有時候我們希望兩個專案共用一些表單,須要複製一份,對Source Code Control也不是很方便,所以基於上訴原因,我會希望在同一個目錄建立兩個專案。

解決方案
通常新增一個專案後,VS會在指定目錄下建立一個與專案名稱同名的子目錄,透過這種方式,我們就無法在同一個目錄建立兩個專案,必須採取另一個變通的方式,在英文版的VS2010可以點選 File>New>Project from existing code ,選擇目錄及指定專案名稱後,就可以在既有的目錄新增一個專案,之後再把第一個專案加入到方案即可。
但是中文版VS2008卻看不到這個選單,經過一番搜尋,原來是被隱藏了。解決方法就是點選 工具>自訂,在 【命令】頁籤下找到【檔案】類別中的【現有程式碼中的專案】,將它拖曳到選單中,就搞定了。

Keep Coding !!

2010年7月10日 星期六

UniCode Information

Q: 如何輸入UniCode內碼,以輸出字串?
A: Console.WriteLine(ChrW(&H4EBA))

Q: 如何查詢中文字的UniCode內碼?
A: 在這個網站輸入中文即可

2010年3月24日 星期三

Move Column position in Data Table

Q: How to Insert Data Column in a specified position, instead of appending to last column?
A: DataTable.Columns.Add does not support it. We need to adjust the position after adding the column. The sample code is listed as below:

 
  Dim mColumn As New DataColumn("Column1")
  Table1.Columns.Add(mColumn)
  mColumn.SetOrdinal(0)

2010年1月21日 星期四

先裝.net 再安裝IIS的處理方式

在%WindowsDir%\Microsoft.NET\Framework\vx.y.zzzz\ 目錄下執行
aspnet_regiis.exe -i