跳到主要內容

發表文章

[.net] IIF and Nullable Var

用IIF來判斷資料是否符合條件是很簡潔的方法 但是對於nullable的資料型態 因為資料會有null的狀況 所以要做IIF的statement反而會有一些問題 例如 Dim a As New Boolean? Dim r As String r = IIf(a.HasValue, IIf(a.Value, "T", "F"), "N") 執行程序會出現 「可為 Null 的物件必須具有值。」 這是因為在內層iif的 判斷是是a.value 雖然看起來邏輯我們在外層的iiF已經判斷a是否有值 但是在執行的時候 還是會先對先執行內部的IIF函數 然後再執行外部IIF判斷 因此這個程序要改寫成這樣 Dim a As New Boolean? Dim r As String r = IIf(a.HasValue, IIf(a.GetValueOrDefault, "T", "F"), "N") 此外還可以改用IF函數改寫 Dim a As New Boolean? Dim r As String r = If(a.HasValue, If(a.Value, "T", "F"), "N") 至於原因為何 只能說IF函數的執行比較沒有那麼嚴警吧:P

[SQL server] SQL :Multiple rows to one column /多行資料整合成一個欄位

在SQL查詢的時候 會有需要將多行資料變成一個單一字串 以利於使用 這時候可以藉由For XML ,跟 STUFF()的配合做到這個功能 例如:   SELECT itemNO FROM Item WHERE ItemType='Food' 取得的資料可能為 itemNO ------------------ Apple0001 Banana0002 Orange0003 如果要整合成一行就可下以下的SQL SELECT STUFF((SELECT ''+itemNO FROM Item WHERE ItemType='Food' FOR XML PATH('')),1,1,'') V 這樣的結果是 V ---------------------------------------------- Apple0001,Banana0002,Orange0003   如果配合關連性的表格使用 則可以這樣寫 select ProductName , ItemNO=STUFF((SELECT ''+itemNO FROM Item WHERE ItemType=P.Type FOR XML PATH('')),1,1,'') from Product p where pID='ABC' ProductName | ItemNO -------------+------------- SunShine | Apple0001,Banana0002 For XML STUFF

Facebook Graph API

Facebook 提供新的Graph API 可以藉由API跟類似SQL FQL語法取得FB網站上的資料 例如要取得 按讚的數量可以用下面的api link取得 https://api.facebook.com/method/fql.query?format=json&query=select%20%20like_count%20from%20link_stat%20where%20url=%22http://www.yahoo.com%22 結果 [{"like_count":485593}] 其中format參數是設定回應的資料型態 預設是XML 在此我是設定成json Query是使用的FQL語法 查詢的內容 https://developers.facebook.com/docs/reference/fql/ 詳細的FQL使用方法 可以到 Facebook還提供測試環境讓你可以測試 Graph API 測試 https://developers.facebook.com/tools/explorer/145634995501895/ 這個功能不只是可以取得連接的資訊,也可以得到使用者的或FB會員的資料, 當然只有公開的資料可以取得而已 有慶去的可以去測試程式試試看

[SQL] SQL依照你的排序條件 找出目前資料的前一筆與下一筆。 Find Pre and Next DataRows of current Datarow by your order condition

有時候需要用SQL找出前一筆跟後一筆資料 用SQL的TOP是沒有辦法做到 這個時候就可以這個語法 select * from ( SELECT TOP 1 * FROM [Article] where Poid {CurrentPoid} order by CreateDate ASC) t2 找出目前PK id前一個與後一個的資料(依照想要排序順序) 那如果指示想要一個資料行呈現的話 可以改用下面的SQL語法 讓這兩筆資料join在同一筆 select Pre.*,Nex.* from (SELECT TOP 1 * ,1 tID FROM [dbo].[Article] where Poid {CurrentPoid} order by CreateDate ASC) Nex on Pre.tID=Nex.tID

Emmet

今天發現一個新的工具 Emmet 看到這個工具真的一樣跟大家介紹一下 雖然我可能是後知後覺 但是不介紹我還是對不起自己 Emmet是一個快速編輯html code的plug in工具 可以套用在vs2012, notepad++, sublime text (目前只支援到2.0),eclipse 還有dreamweaver 這個東西真的是在開發前端程式的好東西啊 可以用簡單的指令架構出html碼 在編輯器中打入 DIV>UL>LI Emmet就會幫你轉成 <div> <ul> <li></li> </ul> </div> 這只基本的功能外他還有很多的功能 更重要的是他可以用在不同的開發環境使用   dreamweaver emmet plugin VS2012 emmet

動態改變Entities 的資連接料庫/ change Entities connection on run time

使用Entity Framework時,通常一開始就要設定好要連接的資料庫 但如果想要在Run time時 變更連接的資料庫, 就得先設定LazyLoadingEnabled屬性, 讓Entities延遲讀取,在設定連接字串到新的資料庫中 dim MyEntities = New Entities() MyEntities.Configuration.LazyLoadingEnabled = True MyEntities.Database.Connection.ConnectionString = "{New Connection String}"

IBM Worklight Android phone/table app Screen Size Setting (IBM Worklight android手機/平版顯示畫面設定)

在worklight設計app的時, 通常預設的screen是mobile手機版本, 因此這樣設計出來的app在pad版本上執行 會發生畫面被放大的狀況, 這是因為預設設定只設定在mobile手機版本上 所以要到project中的android enviroment中AndroidManifest.xml 做以下的設定。 Supports Screens要設定 Resizeable : true Normal Screens: true