發表文章

目前顯示的是 8月, 2017的文章

[C#] WinForm Runtime Add Control & AutoScroll

最主要就是 容器.Controls.Add(新的Control) 當然在這之前要先將這個新的控制項的屬性包含位置都設定好 panel2.AutoScroll = false;//先將AutoScroll disable, 避免新增控制項位置出錯 if (this.Height < 600) this.Height += 65; //新增新搜尋單元 SearchUnit newsearchunit = new SearchUnit(); newsearchunit.Location = new Point(searchUnit2.Location.X, newitem_Y); newitem_Y += 65;//下一次新增時的位置 this.panel2.Controls.Add(newsearchunit); panel2.AutoScroll = true; panel2.AutoScrollPosition = new Point(0, 9000);//新增後置底 參考資料: https://support.microsoft.com/en-us/help/319266/how-to-programmatically-add-controls-to-windows-forms-at-run-time-by-u

SQLite安裝

圖片
下載頁面: http://www.sqlite.org/download.html 選擇64位元 裡面會有 sqlite3.dll 與 sqlite3.def 兩個檔案 tool也要下載 裡面有 sqlite3.exe sqldiff.exe sqlite3_analyzer.exe 三個檔案 把這些檔案都放到 C:\SQLite下 接下來到系統設定中更改環境變數 在Path下加入 C:\SQLite路徑 最後執行comaand line 將目錄移到C:\後 (windows 的 ls 是 dir) 執行sqlite3 就可以完成安裝 參考資料: http://www.runoob.com/sqlite/sqlite-installation.html

[C#] 連結SQLServer

要使用C#連接到SQL Server主要為三個步驟 SqlConnection SqlCommand SqlDataReader 注意需引用using System.Data.SqlClient SqlConnection: 建立SQL Server連線 須注意伺服器名稱最後為分號 private void ConnectSQLServer(ref SqlConnection conn) { string strConn = "Data Source=172.16.2.17\\RJDB,1433;" + "Initial catalog=Drawings_Demo2;" + "User ID=user;" + "Password=1234;" + "Integrated Security = False";//False才會使用SQL帳號認證 conn = new SqlConnection(strConn); } 再來就是把SQL語法丟進SqlCommannd中,查到的資料會存在SqlDataReader物件中 private SqlDataReader SqlQuest(string str) { ConnectSQLServer(ref myConn); myConn.Open(); SqlCommand myCommand = new SqlCommand(str, myConn); SqlDataReader dr = myCommand.ExecuteReader(); return dr; } 將SqlDataReader中的資料複製到DataTable中 private DataTabl

[C#] TreeNode Merge

private vTreeNode DoMerge(vTreeNode source, vTreeNode target) { if (source == null || target == null) return null; foreach (vTreeNode n in source.Nodes) { // see if there is a match in target vTreeNode match = FindNode(n, target.Nodes); // match paths if (match == null) { // no match was found so add n to the target target.Nodes.Add(n); } else { // a match was found so add the children of match DoMerge(n, match); } } return target; } private vTreeNode FindNode(vTreeNode source, vTreeNodeCollection nodes) { foreach (vTreeNode node in nodes) { if (node.TooltipText == source.TooltipText) return node; } return null;