文章目錄
幾句閑扯
其實對於我本人而言,對於各種工具中內建的SQLBuilder並不是很有興趣,而且從搞軟體到現在,也只有在用MSSQL時用過這個功能,而且也只是在建立視圖的時候使用。
我之所以覺得這東西不是很有用,主要一個原因就是因為不管工具做的再好,還是得自己確定一次SQL語句是否正確。
當然一些簡單的,如只是勾選相應的欄位,表與表之間的串連等情況,用起來還是比較方便的。
做軟體往往就是這樣,不管你覺得這東西有用沒用,讓你做,你還是得做。
本篇僅僅介紹一些介面操作。
幾張圖片
介面比較簡陋,左邊是表列表,右邊是主要操作區。
在操作區中,表的實現使用MDI表單,拖拽欄位打表串連主要使用GDI畫出來。
刪除串連也做的比較簡單,使用右鍵實現,如果有興趣了再做選中串連刪除的功能。
右鍵菜單點擊編輯或左鍵單擊串連彈出編輯串連對話方塊。
介面仿照DbVisualizer,功能只做了介面部分。
幾個問題
在做demo的時候,其中還是遇到了幾個問題。
控制項選擇
關於那個可以勾選列的表單,在WinForm中自然而然的會想到一個控制項:CheckedListBox,但是隨即發現,在支援拖拽操作的時候,要從座標去獲得對應的Item,這時候CheckedListBox還真不好弄,而ListView有現成的GetItemAt方法,但是ListView排列並不是一直豎著排列的,也就是說,如果高度不夠,它會橫著排列,而不是出現捲軸。
畫線問題
畫這個線還是有些問題的,比如說左右關係,比如說移動表、拉動捲軸等等,當然,還有一些覺得比較難的我都沒有做,比如說兩條線相交,應該畫出那種拐個彎的,比如說如何對於表排列,才能讓所有關係都不相交。
重疊問題
重疊問題本人沒有解決好,所以希望有人幫忙解決一下,比如下面這種,也就是說當某一個Rectangle都被其他Rectangle遮住,這時候怎麼都沒法選擇這個Rectangle。
幾個地址
- 原文地址:http://nanqi.info/blog/2013/02/09/sqlbuilder-1/
- 我的部落格:nanqi.info
- 源碼地址:https://github.com/NanQi/demo/tree/master/SQLBuilderDemo