發表文章

目前顯示的是 2015的文章

[CS]自動建立事件

圖片
最近要用到在WinForm上使用快速鍵,但是卻礙於建立事件的方式沒有這麼樣的直覺,所以小卡了一下。所以在路上找了一下更方便的方式,順便在此紀錄。 話說vb.net建立控制項的事件像喝水一樣簡單,因為就在表單最上方的下拉是選單。(如下圖) 當你選擇了某控制項的事件,則右方的下拉式選單則會列出所有的事件清單,點選後就會自動建立其程式區塊。 後來查到有更簡便的方法 點選要新增事件的控制項,然後到屬性視窗上可以看到事件的符號(閃電),這裡會列出所有事件清單,然後點選要新增事件的右方空白處,就會自動建立事件的程式區塊 ===========================手動======================================= 下方再來講一下如何手動建立事件(挺麻煩的) 首先要先建立事件 這裡示範的是觸發form1的KeyDown事件,所以輸入this.KeyDown 再輸入後方的+=之後intellisense還是會自動產生後方的程式讓你選擇,再點選Tab自動建立 這個時候要注意,因為是建立在form1上的事件,所以要開啟Keypreview的選項 KeyPreview = true; 建立完成事件宣告後,再加入事件的程式區塊及程式 以上,打完收工。

[C#] Web Service Server and Client (VS 2015)

圖片
話說最近在公司聽到一個之前沒用過的名詞Web Service。所以趁下班來玩一下... 這篇分成三個部分說明: 第一個IIS(都要用Web Service,當然要有網頁伺服器) 第二個Web Service的Server程式開發及發布(如何讓他人可以透過Web Service取得資料) 第三個Web Service的Client程式開發及發布 (如何取得Web Service的資料) 1.IIS設定 建立兩個資料夾,分別讓Server和Client發布用 IIS中將兩個資料夾設定為應用程式 2.建立Web Service Server 建立一個空的應用程式 專案上點選右鍵>新增>新增項目 選擇Web Service(中文版應該叫做Web 服務) 預設開啟的form當然就是傳說中的HelloWorld  <---默默地刪掉~~~沒有用 這個範例建立四個function(輸入皆為兩個整數變數,輸出分別為加、減、乘、除) 建立function的上方,每個function上方都要加上[WebMethod] VS 的Debug模式執行後,跳出了剛剛我們所建立的四個function 點其中一個(Math_A:數值相加),會跳出兩個輸入的textbox,輸入完成後點選"叫用" 跳出產生後的結果,並以xml方式呈現。基本上Web Service的code就到此....結束 網站發行:點選專案右鍵>發行   VS 2015多了一堆支援Azure的選項,但目前我們用不到 點選Custom,並建立一個設定檔的名稱 Server和URL的部分輸入網頁伺服器的路徑,在此因為是本機所以設定Localhost Site name的地方輸入IIS站台路徑,目前我們Web Service Server路徑為 Default Web Site/WS_Server 完成後點選Validate connect的按鈕,測試連線。完成後點選Publish進行網站發行 進入IIS所建立的網站測試畫面如下,與VS Debug的畫面一致 以上~~Server架...

[MS SQL]查詢資料庫中每個資料表之列數與資料表大小(容量)資訊。Get size of all tables in database

圖片
紀錄一下 USE DatabaseName Go SELECT t.NAME AS TableName, --s.Name AS SchemaName, p.rows AS RowCounts, SUM(a.total_pages) * 8 /1024 AS TotalSpaceMB, SUM(a.used_pages) * 8 /1024 AS UsedSpaceMB, (SUM(a.total_pages) - SUM(a.used_pages)) * 8 /1024 AS UnusedSpaceMB FROM sys.tables t INNER JOIN sys.indexes i ON t.OBJECT_ID = i.object_id INNER JOIN sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id INNER JOIN sys.allocation_units a ON p.partition_id = a.container_id LEFT OUTER JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.NAME NOT LIKE 'dt%' AND t.is_ms_shipped = 0 AND i.OBJECT_ID > 255 GROUP BY t.Name, s.Name, p.Rows ORDER BY t.Name 參考來源: http://stackoverflow.com/questions/7892334/get-size-of-all-tables-in-database

Visual Studio(C#) 常用快速鍵備忘錄

話說最近轉到C#陣營,很多排版真的很不習慣,所以要多利用一些方法讓自己趕快上手。 在此紀錄一些常用到的快速鍵,有需要的朋友也歡迎參考使用。 1.程式碼展開/縮合的快速鍵( 參考 ) Ctrl+M ,在介面的左下方會出現"等待第二個套索鍵", 再按下Ctrl+L 。此時程式碼會全部展開或全部縮合起來,這樣以利程式搬移或檢視。 2.C#如何判斷大括號所對應的括號(大括號"{"之所對應的括號"}"位置?)?( 參考 ) Ctrl + ] ,若你的滑鼠游標位於{,按下該快速鍵後,會跳到所對應的}。因為剛轉到C#陣營,常常對應不到大括號,有此方法真的方便快速。 3.程式碼自動排版( 參考 ) 對於剛剛所說到的大括號,會自動排版。 Ctrl + k 再按下Ctrl + d 。其他設定可以 參考連結

[SQL]取得sequence 清單 (get sequence_name list)

--postgresql get sequence_name list select sequence_name from information_schema.sequences where sequence_schema='public' 參考來源: https://diego.org/2008/10/10/postgresql-sequences/ --MSSQL(MSSQP2012或以上版本) get sequence_name list SELECT name FROM sys.sequences 參考來源: http://raresql.com/2012/10/24/sql-server-2012-list-of-all-sequences-available-in-the-database/

[C#]用程式控制Window service狀態

gipi大大寫得太好~所以直接轉址過去。在此發佈只是讓自己註記備忘.. http://www.dotblogs.com.tw/jimmyyu/archive/2009/08/19/10150.aspx

[PostgreSQL]列出資料表清單

要做一支PostgreSQL資料轉倒到MSSQL,所以先來查些需要用到的指令,並做紀錄 select * from Information_schema.tables where table_schema not in ('information_schema','pg_catalog') order by table_name asc;

[C#]Listbox的上移、下移、左移、右移

圖片
話說,Vb.Net轉C#真的不是加個大誇號和分號就搞定,有些物件的屬性還不盡相同。趁有時間練習一下C#的一些物件使用,並在此做一下紀錄。 由於感冒藥吃下去快陣亡,所以就廢話不多說,首先是介面的示意畫面,下方是程式碼。 程式碼內都有註解~有需要的朋友可以參考,這個包含了多筆選擇的操控。 /// /// 表單開啟 /// private void Select_Item_Load(object sender, EventArgs e) { //給ListBox值 for (int i = 0; i < 10; i++) { this.listBox1.Items.Add("★" + i); } //調整listbox為可多選 listBox1.SelectionMode = SelectionMode.MultiExtended; listBox2.SelectionMode = SelectionMode.MultiExtended; } /// /// listbox所選項目向右移 /// private void button_right_Click(object sender, EventArgs e) { // '檢查有沒有選取項目 if (listBox1.SelectedIndices.Count > 0) { //由於被移動後所選取的數量會改變,所以要先放在暫存器內 int selectedCount = listBox1.SelectedIndices.Count; //用for迴圈由小到大去巡覽 for (int i ...

[C#]中文陣列排序(文化特性排序 for 各國語系)

圖片
之前有個地方在討論中文要怎麼排序,通常台灣很像都是ㄅㄆㄇㄈ或筆畫。所以今天晚上努力地找了一下,並把他實現,所以在此做個紀錄。 其實並不難,因為微軟都已經幫忙做好了 其中CultureInfo是代入微軟所提供之方法,可參考下列網址: 點我網址 主要程式碼如下: //注音排序 string[] StrSort; StrSort = InputBox.Text.Split(','); List itemList = new List (); itemList = InputBox.Text.Split(',').ToList(); System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo(0x00030404); itemList.Sort((A, B) => { return A.CompareTo(B); }); foreach (String s in itemList) { OutputBox.Text = OutputBox.Text + s + " "; } 主要是第8行的 CultureInfo代碼要代入微軟的文化特性後方的代碼,我們看台灣的部分注音是用0x00030404,若要用筆畫的話,就要將代碼改為0x00000404。 另外簡中的拼音、香港的發音等都有在這裡頭支援。 下面是實際的排序畫面 依照注音排序的結果 依照筆畫排序的結果

[電腦]如何透過IP查詢電腦名稱

圖片
在命令題是字元下指令: nbtstat -a ip_address

[MantisBT]MantisBT 安裝於windows 流程簡易紀錄

系統架構 作業系統:Windows 7 網頁伺服器:IIS 資料庫:PostgreSQL 1.官網下載 https://www.mantisbt.org/ 2.將檔案解壓縮放置網頁置放路徑 3.設定IIS使其支援PHP( 參考 ) 4.IIS站台設定,設定資料夾權限、預設網頁(index.php) 5.設定資料庫 登入帳號、密碼,假設帳密皆為mantis 建立一組資料庫,假設資料庫名稱為MantisDB 6.瀏覽器登入 Http://Localhost/admin/install.php 7.設定資料庫資訊,把剛剛的帳密mantis和資料庫名稱MantisDB輸入網頁中 其中有一個Create Database user name和password這兩個可以空著,因為~資料庫是手動建立所以這兩個不需要 8.一直下一步應該就完成,登入之帳號密碼為 帳號:administrator(大小寫要注意) 密碼:root 搞定

[SI]Modbus 通訊協定 資料位址 五位數 和 六位數 問題(About Modbus protocol 5 digit addressing vs 6 digit addressing)

在使用modbus通訊的時候,大多的通訊位址包含了function code為五位數(40003,40123..之類的),而卻也有些設備是六位數,在此說明一下兩者有什麼差異。 在kepware的網站上面有類似的說明,意思是~~~兩者其實沒有差異,在通訊的解析上,41,401,4001,40001這些其實都是一樣的位址,也就是4x1的意思。 所以直接破解了五位數位址和六位數位址的迷思,其實modbus的通訊位址最大可以到65535,也就是465535(4xFFFF)。 給有迷思的朋友參考。 下列為kepware網址說明的原文及頁面連結。 from kepware Modbus: 5 Digit Addressing vs. 6 Digit Addressing   Problem: Although addresses are specified in the device's manual as 0xxxx, 1xxxx, 3xxxx, or 4xxxx, the address is padded with an extra zero once it is applied to the Address field of a Modbus tag. For example, "40001" becomes "400001". Solution: There is no difference between the two addresses. In a Modbus device, the same item can be represented by the following addresses: "41", "401", "4001", "40001", and "400001". Modbus drivers support the data items' full range, and will pad any address to six digits in the User Interface. This will not affect the actual add...

[PHP]安裝PHP在Win7 IIS

圖片
這篇要說明如何使用IIS來架PHP的網站(雖然通常大家都用阿帕契來架,但是最近的"你欠囉"風波~~~冷  哈) 1.首先要先安裝IIS,這是廢話也是基本的,但是有個地方一定要注意必須勾選,如下圖 2.下載PHP套件: http://windows.php.net/download/ 這次我下載的是PHP 5.6.8, VC11 x64 Thread Safe (2015-Apr-16 01:46:22) 這個版本(最好是下載 Thread Safe版本 ) 3.解壓縮下載後的壓縮檔並放在  C:\PHP\ 資料夾 4.複製資料夾中的  php.ini-production   檔案,並將檔名改為 php.ini 5.用記事本開啟剛剛所複製改檔名的那個檔案php.ini,並找到下列的設定參數,移除註解(去除";"分號就代表去除註解了)並將值改同下方設定參數的值,完成後儲存設定。 memory_limit = 256M post_max_size = 128M extension_dir = "C:\PHP\ext" upload_tmp_dir = "C:\PHP\upload" upload_max_filesize = 128M max_execution_time = 600 max_input_time = 600 max_input_vars = 2000 cgi.force_redirect = 0 cgi.fix_pathinfo = 1 fastcgi.impersonate = 1 extension=php_curl.dll extension=php_mbstring.dll extension=php_exif.dll extension=php_gd2.dll extension=php_ldap.dll extension=php_mysqli.dll session.save_path = "C:\PHP\session" session.use_cookies = 1 6.建立 " upload ...

[CSharp]Try Catch 的錯誤字串

        習慣用vb.net在使用try and catch的時候程式碼會自動產生下列的form,其中ex的部分會承接攔截到的錯誤,並可使用ex.message來顯示錯誤訊息         Try         Catch ex As Exception         End Try 但是~~在C#的部分不會自動產生form,且catch也沒有帶Exception。所以在此紀錄一下在C#中的使用格式,如下請參考:             try             {                         }             catch(Exception ex)             {                 MessageBox.Show(ex.Message);             }             finally             {                         }

[PostgreSQL]如果資料表不存在,則建立資料表

單純的語法 CREATE TABLE IF NOT EXISTS Test_Table (SN bigserial PRIMARY KEY, KID character varying(16) NOT NULL, EID int NOT NULL, RLT bit varying NOT NULL, TS timestamp without time zone NOT NULL) 紅色字為資料表名稱,粉紅色為欄位名稱及資料型態,藍色字為判斷指令

[MSSQL、PostgreSQL]列出資料表的欄位與資料型態

圖片
[PostgreSQL] SELECT column_name , data_type from information_schema.columns where table_name = ' test_table '; 紅色字部分為資料表名稱 搜尋結果 UI設定畫面 [MSSQL] SELECT COLUMN_NAME,DATA_TYPE,COLUMN_DEFAULT from information_schema.columns where table_name = ' table_Name ';

[IIS]MS IIS 7 備份與還原(透過命令提示字元)

先將目錄切到  %windir%\system32\inetsrv 備份 在命令提示字元下,鍵入  appcmd add backup <backupname> 。如果沒有包含備份的名稱,系統會使用「日期, 時間」的格式來命名備份。 還原 在命令提示字元下,鍵入  appcmd restore backup <backupname> 參考: https://technet.microsoft.com/zh-tw/library/dd819406.aspx https://technet.microsoft.com/zh-tw/library/dd819405.aspx

[SQLite]變更資料表名稱 rename table

變更資料表名稱 指令如下: ALTER TABLE 原始資料表名 RENAME TO 變更資料表名 ;   ex: ALTER TABLE database_name.table_name RENAME TO new_table_name;   參考: http://www.w3cschool.cc/sqlite/sqlite-alter-command.html  

[SQLite]替代字串 Replace string

圖片
話說這幾天在測指令,在使用日期處理指令的時候一直出錯。後來發現資料表t1的欄位c1內容日期格式是"年/月/日",但是SQLite處理時不認得,必須要更改為"年-月-日" 原始日期格式 修改後日期格式   所以下面說明一下要替代c1欄位內容字串的方法 UPDATE 資料表 SET 欄位 = replace( 欄位, '原始字串', '替代字串' ) 這個案例的SQL Command: UPDATE t1 SET c1 = replace( c1, '/', '-' ) 收工

[SQLite]DateAdd 日期時間計算

在MS SQL中會使用到的DateAdd函式沒有被SQLite支援,所以在這裏紀錄一下日期的計算 SELECT date('2015-01-04','+100 day'); 結果:2015-04-14 SELECT date('2015-01-04','+3 month');  結果:2015-04-04  SELECT time('13:12:03','-3 minute');  結果:13:09:03 參考網址:http://www.w3cschool.cc/sqlite/sqlite-date-time.html

[Redmine]Redmine 專案管理平台之基本功能介紹

圖片
What's Redmine ?      Redmine 是專案管理用的系統, 基本上該有的都有了, ex: Wiki、Ticket(Bug Tracking), SCM support...      Redmine 是一個網頁界面的專案管理與缺陷跟蹤管理系統的自由及開放原始碼軟體工具。它整合了專案管理所需的各項功能:日曆、燃盡圖和甘特圖 以協助視覺化表現專案與時間限制,問題跟蹤和版本控制。此外,Redmine也可以同時處理多個項目。     Redmine 是以 Ruby on Rails 撰寫的架構,它橫跨多個平台與資料庫,它的設計很明顯是受一些類似功能軟體包的Trac所影響。此外,它也是Bitnami 應用函式庫的一部份。 功能:  Multiple projects support - 多個專案管理 Flexible role based access control - 多種角色的存取控制 Flexible issue tracking system - Ticket 管理 Gantt chart and calendar - 看進度、行事曆 News, documents & files management - 文件、檔案管理 Feeds & email notifications - RSS、Email 通知 Per project wiki - 每個 Project 都有獨立 Wiki 系統 Per project forums -  每個 Project 都有獨立 討論區 Time tracking - 時間追蹤 Custom fields for issues, time-entries, projects and users - 自訂欄位 SCM integration (SVN, CVS, Git, Mercurial, Bazaar and Darcs) - 支援多種版本控制系統 Issue creation via email Multiple LDAP authentication support User self-registr...