
- Jan 31 Thu 2013 16:11
-
[SQL Server] 關於 Store Procedure 中使用 sp_executesql 執行 T-SQL 陳述式

在撰寫 Store Procudure 時, 因需求關係可能會在其中依據條件的不同來組成 T-SQL 陳述式, 再加以執行。
在一般的條件下, 只需要下 sp_executesql @陳述式變數即可完成執行動作。
但若 T-SQL 陳述式中, 有特殊文字如 "綉", 不論是寫在條件式中或是查詢欄位, 這種特殊文字是無法正常呈現的。
先看下 SQL Server 是如何呈現特殊文字的, 如下, 若直接查詢 " 綉" 這個字, 我們看到的結果會是 "?"。
該如何讓它正常呈現, 只要加個前贅字 "N" 即可, SQL Server 會知道要以 Unicode 來作呈現。可參考 http://support.microsoft.com/kb/239530/zh-tw。
- Jan 22 Tue 2013 15:16
-
[.NET Entity Framework] 找不到 Entity Key ???

前陣子使用 WebSecurity 產生使用者 Table, 接著再使用 Entity Framework 5.0 由資料庫產生程式碼, 好玩的事情發生了, 在編譯時沒有錯誤, 當有使用到那一些由 Entity Framework T4 產生的 Domain Model 時, 就發生 Run Time Error...
這錯誤訊息是說, 未定義 Entity Key, 也就是 Table 的 Primary Key, 說也奇怪, 檢查一下 Entity Framework Diagram, 奇怪..., 明明有確實是有 Entity Key, 竟然沒有跟著產生出來...
搞了半天, 原來使用 Entity Framework 在 Domain Model 操作時會去尋找他的 Entity Key, 而且它預設只認得 Id 或 EntityNameId 是該 Table 的 Key, 如果使用的 Primary Key 名稱不是以上兩個, 很抱歉, 只能自己加了..., 也就是 Domain Model 的 Entity Key 一個 Key Attribute.
如上, 在 Domain Model using System.ComponentModel.DataAnnotations, 並給予 Entitty Key 一個 Key Attribute.
P.S. 為何 WebSecurity 預設產生的 Table Primary Key 不是用 Id 或 EntityNameId 呢..., 這樣不就每次用 Entity Framework Update 時就要在改一次哩... Orz...
- Dec 21 Fri 2012 17:15
-
[.NET MVC 4] 使用 ValidateAntiForgery 防止CSRF跨網站請求偽造攻擊

CSRF(跨網站請求偽造),簡單的說就是尤其他的位置Post偽造資料請求的攻擊,較詳細的解說可參考http://en.wikipedia.org/wiki/Cross-site_request_forgery。
NET MVC 4可使用ValidateAntiForgery來防止CSRF攻擊,僅限Post,其原理只是在Return View時計算出一組Token並帶到頁面上,在Post時會去比對這組Token,使用方法很簡單。
在View(or Templates or Partial)中的Form裡面加入@Html.AntiForgeryToken(在此使用的是Razor語法,若是使用Aspx只要將@去掉並以<% ... %>包起來即可)。
接著在Form Sumit的目標Action上加上[ValidateAntiForgeryToken]這個屬性(若是Action上有這個屬性,但View沒有,會出現Error)。
以上兩個步驟即完成針對CSRF攻擊安全性的提升。
- Nov 23 Fri 2012 17:27
-
[.NET MVC] 使用多國語系

.NET MVC多國語系,可以利用Resource檔來達到目的。
首先,先在MVC專案底下建立一個「App_LocalResources」資料夾,其主要目的是放置各國語系的Resource檔。
接著,在「App_LocalResources」中建立一個Resource檔。
本範例將這個Resource檔取名為「Resource.resx」(若未指定語系,則以此檔案為主),檔案建立完成後,開啟即可編輯,將所需要的資訊輸入,如下圖,Name是Resource檔的屬性名稱,而Value是該屬性內容,Comment是註解(這不是廢話嗎?);很重要的一點是,Access Modifer記得要設為Public,不然會怎麼叫都叫不到。
編輯完檔案後,開啟檔案屬性,如下圖,Build Action要設為Embedded Resource,Copy to Output Directory設為Copy always,Custom Tool Namespace即為命名空間(Namespace),要呼叫時會用到,請自訂(由於是使用英文版VS,就不在此做翻譯,請使用中文版的朋友稍微自己翻譯一下)。
- Sep 14 Fri 2012 10:20
-
[iOS] Create APNs Key for PHP
Apple Push Notification service(APNs),要建立Push Server的條件下,就是要有一組Key讓APNs做驗證,以下指令可以製作出Push Server on PHP所需要的Key。
openssl pkcs12 -clcerts -nokeys -out cert.pem -in Certificates.p12
openssl pkcs12 -nocerts -out key.pem -in Certificates.p12
openssl rsa -in key.pem -out key.unencrypted.pem
cat cert.pem key.unencrypted.pem > ck.pem
- Jul 18 Wed 2012 15:31
-
[SQL Server] 解決資料庫還原版本向下相容的問題
SQL Server Backup產出的bak檔,版本是無法向下相容的,如2008產出的bak就無法拿到2005使用,但若是有此需求,有另一解法,可參考以下網址。
此方式就不是透過bak備份檔案還原,而是透過產出指定版本script的方式,透過該script,拿到該指定版本的資料庫做還原。可見路有好幾條,只是看看官們有沒有找到而已呀。
- Jul 18 Wed 2012 14:30
-
[Javascript] 引用外部 js 檔時利用屬性傳遞參數
在開發網頁時,時常會將Javascript寫在外部的js檔並直接呼叫使用。在實用面上,如何傳遞參數給該外部js檔使用呢?除了預先在頁面的Javascript區段定義好全域變數供其使用(此方法若全域變數名稱有變動,js亦需要跟著變動),還有另一種利用屬性帶值的方式,以下程式碼簡單示範一下。
HTML
<!--引用外部js 檔-->
<script src ='demo.js' type='text/javascript' data ='data' ></script>
- Jul 18 Wed 2012 10:50
-
[SQL Server] Bak 檔案還原資料庫
為了還原一個bak檔,使用GUI搞了半天,一直回報錯誤而無法還原,最後只好嘗試自己下語法還原,短短兩行就把問題解決了。
RESTORE DATABASE DatabaseName
FROM DISK = 'BakFilePath' ;
- Jul 17 Tue 2012 16:03
-
[Android] 將 Bitmap 轉為指定格式圖片並儲存至 SDCard
以下程式碼將示範如何將Bitmap轉為指定格式的圖片並儲存至外部儲存裝置SDCard。
若要寫入SDCard,必須先將寫入外部儲存裝置的權限打開,於Android專案的AndroidMaifest.xml中加入以下敘述。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
- Jul 17 Tue 2012 14:48
-
[Android] 由 Extends View Class 關閉 App
如果在主要Activity中setContentView,所指定的View為自訂的extends View class的話,該如何在該extends View class中呼叫finish()來關閉App呢?以下簡單程式碼即可達成目的。
// 主要Activity
setContentView(new FdView(this));
- Jun 08 Fri 2012 10:47
-
[Design Pattern] IoC / DI
通常在程式撰寫上,若要由A呼叫B,通常都是直接以"主動"的方式去呼叫。
A → B
主動建立
在這結構中過程中加入IoC/DI容器,會變得如何?(注意箭頭方向)
A ← IoC/DI Container → B
- Jun 06 Wed 2012 21:11
-
[Design Pattern] 懶惰式 v.s. 飢餓式
程式在撰寫的過程中,如何善用資源是非常重要的事情。
以下就拿Singleton(單例模式) Class各別以"懶惰式"及"飢餓式"的寫法來做個比較。
所謂懶惰式,就是要用到時才會去建立instance,如以下程式碼。
public class Singleton {
private static Singleton instance = null ;