在撰寫 Store Procudure 時, 因需求關係可能會在其中依據條件的不同來組成 T-SQL 陳述式, 再加以執行。
在一般的條件下, 只需要下 sp_executesql @陳述式變數即可完成執行動作。

但若 T-SQL 陳述式中, 有特殊文字如 "綉", 不論是寫在條件式中或是查詢欄位, 這種特殊文字是無法正常呈現的。

先看下 SQL Server 是如何呈現特殊文字的, 如下, 若直接查詢 " 綉" 這個字, 我們看到的結果會是 "?"。

該如何讓它正常呈現, 只要加個前贅字 "N" 即可, SQL Server 會知道要以 Unicode 來作呈現。可參考 http://support.microsoft.com/kb/239530/zh-tw

流風羽 發表在 痞客邦 留言(0) 人氣()


前陣子使用 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, 而且它預設只認得 IdEntityNameId 是該 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...

流風羽 發表在 痞客邦 留言(0) 人氣()


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攻擊安全性的提升。

流風羽 發表在 痞客邦 留言(0) 人氣()


.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,就不在此做翻譯,請使用中文版的朋友稍微自己翻譯一下)。

流風羽 發表在 痞客邦 留言(0) 人氣()

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 

流風羽 發表在 痞客邦 留言(0) 人氣()

SQL Server Backup產出的bak檔,版本是無法向下相容的,如2008產出的bak就無法拿到2005使用,但若是有此需求,有另一解法,可參考以下網址。





此方式就不是透過bak備份檔案還原,而是透過產出指定版本script的方式,透過該script,拿到該指定版本的資料庫做還原。可見路有好幾條,只是看看官們有沒有找到而已呀。

流風羽 發表在 痞客邦 留言(0) 人氣()

在開發網頁時,時常會將Javascript寫在外部的js檔並直接呼叫使用。在實用面上,如何傳遞參數給該外部js檔使用呢?除了預先在頁面的Javascript區段定義好全域變數供其使用(此方法若全域變數名稱有變動,js亦需要跟著變動),還有另一種利用屬性帶值的方式,以下程式碼簡單示範一下。


HTML

<!--引用外部js -->

<script src ='demo.js' type='text/javascript' data ='data' ></script>

流風羽 發表在 痞客邦 留言(0) 人氣()

為了還原一個bak檔,使用GUI搞了半天,一直回報錯誤而無法還原,最後只好嘗試自己下語法還原,短短兩行就把問題解決了。



RESTORE DATABASE DatabaseName

   FROM DISK = 'BakFilePath' ;


流風羽 發表在 痞客邦 留言(0) 人氣()

以下程式碼將示範如何將Bitmap轉為指定格式的圖片並儲存至外部儲存裝置SDCard。


若要寫入SDCard,必須先將寫入外部儲存裝置的權限打開,於Android專案的AndroidMaifest.xml中加入以下敘述。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />


流風羽 發表在 痞客邦 留言(0) 人氣()

如果在主要Activity中setContentView,所指定的View為自訂的extends View class的話,該如何在該extends View class中呼叫finish()來關閉App呢?以下簡單程式碼即可達成目的。


// 主要Activity

setContentView(new FdView(this));


流風羽 發表在 痞客邦 留言(0) 人氣()

通常在程式撰寫上,若要由A呼叫B,通常都是直接以"主動"的方式去呼叫。

A         B

  主動建立

在這結構中過程中加入IoC/DI容器,會變得如何?(注意箭頭方向)

A         IoC/DI Container         B

流風羽 發表在 痞客邦 留言(0) 人氣()

程式在撰寫的過程中,如何善用資源是非常重要的事情。
以下就拿Singleton(單例模式) Class各別以"懶惰式"及"飢餓式"的寫法來做個比較。

所謂懶惰式,就是要用到時才會去建立instance,如以下程式碼。

public class Singleton {

    private static Singleton instance = null ;

流風羽 發表在 痞客邦 留言(0) 人氣()

Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。