自己最常面對的都是SQL Server資料庫,例如之前製作下拉選單的筆記:
https://jerry5217.pixnet.net/blog/post/225960490
現在需求是從Orcale資料庫取得會員資料與SQL Server的問券資料做整合,
不免俗地又來到了"拜"Google大神的行為了!\(^o^)/
意外發現現在連接Orcale資料庫變得超簡單!趕緊再來做個筆記...
自己最常面對的都是SQL Server資料庫,例如之前製作下拉選單的筆記:
https://jerry5217.pixnet.net/blog/post/225960490
現在需求是從Orcale資料庫取得會員資料與SQL Server的問券資料做整合,
不免俗地又來到了"拜"Google大神的行為了!\(^o^)/
意外發現現在連接Orcale資料庫變得超簡單!趕緊再來做個筆記...
在一個因緣際會的情況下,開發的系統需要將文字轉成圖型檔儲存,
於是又展開了一場Google之旅,整理好這個技巧做個筆記留存...
只要是在微軟Office的文書作業環境中一定會有個字型的選項,
如下圖在Word介面的功能區,選擇[Cooper Black]所呈現的文字,
最近接到物流管理人員的需求,希望能同時查看跨倉別及跨品牌的單據,
經了解之後發現公司的物流管理系統,天生就無法輸出這種需求的報表,
各品牌負責人在操作系統後,將單據匯出Excel檔案並且交付倉管部門,
物流人員收到各方報表後,再依不同的下一關卡分批進行人工彙整作業,
不論是系統當初未客製的操作需求,或者是同仁們必須的人工彙整作業,
最進發現Textbox控制項在使用者輸入內容按Enter鍵後,
頁面完全不處理Textbox控制項的內容,直接跳回首頁!(ó﹏ò。)
印象中之前會跑頁面中Button控制項的OnClick事件,
或是使用Textbox控制項自己的OnTextChanged事件來處理,
現在都不行了!
之前都是利用Calendar控制項提供日曆的畫面及選項:
http://jerry5217.pixnet.net/blog/post/237961279
但如果要針對特定日期加註解或說明,似乎就沒這麼方便了!
行事曆是一週七天反覆循環的表格,所以決定土法煉鋼自己畫一個來用,
像桌曆一樣一次顯示一個月可以換到上或下個月,如下圖:
在網頁表單中設計選擇題,通常是用RadioButton或是CheckBox這二個控制項,
早期在用VB Script開發ASP網頁時,單選用RadioButton而複選就用CheckBox,
但到了.Net的環境似乎沒差了,最終也是業主希望你按照他的方式設計!
最近就碰到一個案例,希望從資料庫撈出來後用單選的CheckBox型態供選擇,
趴了許多文也試了許多方法,最後自己測出這個簡單的技巧在此留下筆記...
今天記錄一下過去二天研究用C#寫入資料到Excel的方式,
先將開發的專案加入[Microsoft.Office.Interop.Excel]的命名空間(namespace)
從方案總管(Solution Explorer)選擇加入參考(Add References)
在清單中找到Microsoft.Office.Interop.Excel並選擇確定
資料儲存時最常用日期時間欄位來判定資料的先後順序,任何程式開發語法都可以直接取得當下的日期時間,但12小時制與24小時制的時間表示樣式,在存入資料表的後續處理就不一定能掌握了...
例如下列二個C#的指令取得電腦當下的時間:
一個是輸出12小時制的日期時間,另一個是輸出24小時制的日期時間,
我當下操作的電腦是繁體中文環境,所以12小時制會看到"上午"或是"下午"的字樣,
以前ASP 3.0的時代是用FrontPage撰寫VB Script語法開發資料庫網頁,
現在ASP.Net的環境用Visual Studio撰寫C#語法來進行,
今天要做的筆記是網頁中常出現的下拉選單(Drop Down List),
在這個表單物件(控制項)中,我們可以指定每個選項的文字(Text)及鍵值(Value),
如下圖分別是VB Script以及C#所新增名稱為DDL_Priority的下拉選單物件,
前端表單填入的資料有可能是各式語言版本,
所以在資料庫設計資料表的時候文字型態通常就是設定成nvarcher,
nvarchar第一個字母的"n"就是代表可接受Unicode萬用字元的編碼,
延續上回管理學生資料的範例:
http://jerry5217.pixnet.net/blog/post/257390008
繼上回將.Net開發好的功能成功建置於運行中的網站後,
http://Jerry5217.pixnet.net/blog/post/249657751
這回又遇到了一個狀況!
該網站依照使用者登入帳號來做功能選單的控管,
跟其他網站一樣最常用的當然就是利用Session了,
我要設計在查詢過程中,頁面會即時告知使用者目前還有多少筆資料可供查詢的技巧,
之前已經學會了將資料表的內容載入下拉選單(DropDownList):
http://jerry5217.pixnet.net/blog/post/225960490
上次的技巧中我們是用SqlDataReader這個類別,將資料逐筆新增到下拉選單中,
當然我們在逐筆取得資料表的內容後,依樣可以得知總共有多少資料筆數啦!
繼上回我想要規定使用者只能輸入固定格式的資料後...
http://jerry5217.pixnet.net/blog/post/225014395
這次我想要在前端頁面直接彈跳出訊息視窗,
在此之前我都是將不符合規定的訊息輸出在Lable控制項...
繼上回將開發好的程式碼上線到網頁伺服器之後,
http://Jerry5217.pixnet.net/blog/post/246239836
這次要整合在另一部已經存在許多功能頁面的伺服器中,這次的伺服器主機是Windows Server 2008內建IIS 7.0,初次見面還真是有點兒陌生啊~
還是老手法將開發編譯無誤的程式碼,整個資料夾複製到伺服器中然後用IIS的路徑去指它,理論上就是網頁的網址路徑正確應該就可以運行了吧!理論歸理論當然不會這麼順遂不然就不叫"微軟"了,"微"就是細節中的魔鬼"軟"就是猜不透摸不著,搞上一整天但有可能休息撒泡尿回來就突然通了(=_=)|||
這次在IIS7上面遇到的錯誤是在Web.Config裡面重複定義了Section,由於這次我開發的程式碼是要放入正在運行的網頁伺服器中,所以在其它資料夾只要是用Visual Studio開發的功能,不論是用何種語法工具都會有Web.Config這個檔案,所以很容易會有重複定義的錯誤發生,我特別在同一個資料夾路徑下用記事本寫了一個簡單的Html網頁,檔名是Index1.htm另一個用C#寫的簡單首頁是Default.aspx,在用戶端(Client)開啟瀏覽器執行的時候神奇的事情發生了!
真的是太久沒開發網頁了!
回頭用當年熟悉的Visual Studio 2008開發了一個簡單的資料庫網站,
天真的以為把程式碼複製到網頁伺服器,然後IIS新增一個網站把路徑指向該網頁就可以用了(@_@)
果真不像在本機開發的時候這麼順遂,立馬出現組態錯誤!
延續上回利用Calendar控制項在頁面提供日期選擇的功能:
http://jerry5217.pixnet.net/blog/post/226747753
我這次想要在提供日曆選擇的時候,就讓使用者知道那一天有資料可以讀取,
概念如下:
在資料庫建構資料表的過程中我們通常會設計一個主鍵(Primary)的欄位,此欄位內容不能重複並且能作為關連其他資料表的依據,例如我們常常會用身分證字號或是手機電話號碼,假設我想要設計一個不記名的問卷調查表,主鍵欄位可以設計為數值變數然後用流水號的方式不斷累加,也可以設計為字串變數然後自己設計編碼規則,
這次我要自己設計編碼規則以日期年月日加流水號,用當天的年月日當編碼的開頭這樣一來等明天過後就永遠不會重複了,例如每天建立的資料不超過10筆則編碼為yyyymmdd+x共9碼,如果每天建立的資料不超過100筆則編碼為10碼...以此類推,
用程式碼取得系統日期並不難但是要固定8碼就需要一點兒技巧了,例如2106/9/5與2016/12/10是不同的,所以目標是將2016/9/5十位數補"0"變成20160905,然後2016/12/10變成20161210這樣子就都會固定8碼了,程是碼如下:
接下來日期8碼後面的流水號若設計2碼,則亦需要在10以前將十位數補"0"變成01~09,這樣一來自己設計的字串主鍵欄位永遠都會是10碼了,
今天的筆記很簡單!純粹是想要在表單提供一個日期選擇的方式,
當前端網頁有輸入日期的需求時盡量避免使用文字輸入欄位,
以免後端程式碼接收到一堆非制式或是無法預期的內容,
想創造的使用方式如下!
資料庫顧名思義就是拿來存放資料的地方,我們可以從很多管道對它進行資料的維護,
而在使用者的操作介面中,當然是希望能夠取得並提供最新的資料內容,
所以我們就必須在使用者開啟頁面時,才去資料庫取得當下最新的資料,
這也是ASP(Active Server Pages)這個名詞最初衷的概念之一,
我們現在要提供一個下拉選單,列出目前為止所有合作的公司名稱供選擇,
當我們要提供一個有包含電話號碼欄位的輸入表單時,最常用的就是從工具箱拉一個TextBox的物件來用,但是電話號碼的格式隨人發揮百百種,例如台北市政府的電話02-27208889也可以寫成(02)2720-8889,
但是客服電話或是行動電話又不一樣了!有些行動電話加國碼(台灣是+886),但理論上加了國碼之後第一碼的0是不需要存在的,而理論歸理論身為操作介面的設計師規則當然是我們說了算,不然就天下大亂啦!
所以我在前端使用者操作頁面用二個TextBox作為電話輸入欄位,
一個區碼號碼一個電話尾碼,後端再用程式碼整理存入資料庫,