2014年12月20日 星期六

置中、靠右

讓容器內容置中

方法1
.container{
    display: flex;
    justify-content: center; /* 內部元素水平置中*/
    align-items: center; /* 內部元素垂直置中*/
}
參考
※若使用 bootstrap 可使用現成class
<div class="d-flex justify-content-center align-items-center"></div>
※若內部物件要靠右則設定 margin-left: auto

方法2 (垂直置中)
<div style="position: relative">
<uib-progressbar style="position: absolute; top: 50%; transform: translateY(-50%)" animate="false" value="dynamic" type="success"><b>{{progress}}%</b></uib-progressbar>
</div>
ps. 若考慮網頁會出現捲軸,position 要改為 fixed


讓元素本身置中

<div style="position: fixed; top: 50%; left: 50%; transform: translate(-50%,-50%)"></div>

讓元素本身靠右

<div style="display:flex;"><div style="margin-left:auto;margin-right:0;>靠右</div></div>

2014年10月16日 星期四

EF 呼叫 sql server 自訂函數

目前的EF 無法匯入 UDF,只能透過 db.Database.SqlQuery 的方式取得資料
範例:
string sqlQuery = "SELECT [dbo].[平均成本] ({0},{1},{2},{2},0,0)";
Object[] parameters = { a.產品編號, DateTime.Now, a.目前庫存 };
var 平均單價 = db.Database.SqlQuery(sqlQuery, parameters).FirstOrDefault();

User Profile Service 服務無法登入 無法載入使用者設定檔

1. 使用安全模式(含命令提示字元) 進入windows
2. regedit
3. 展開HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
4. 找到兩個比較長的,重新命名以便對調 .bak
5. 針對沒有.bak 的項目,將右邊視窗中的 refcount 和 state 都修改為0
6. 重新開機便可以順利登入

參考來源

2014年10月6日 星期一

檢視無法匯入entity framework edmx

錯誤訊息: 資料表/檢視 xxx 未定義主索引鍵,也無法推斷有效的主索引鍵。此資料表/檢視已被排除。...
解法:
在 EDMX 匯入 SQL Server 檢視表的時候,有兩種明確提示的方法:
  1. 在 SELECT 子句中,如果有欄位使用 ISNULL 函式,那麼該欄位會自動成為 EF 的主索引鍵
  2. 在 SELECT 子句中,如果有欄位使用 NULLIF 函式,那麼該欄位一定不會成為 EF 的主索引鍵

2014年9月18日 星期四

jqueryui 的 dialog 造成 form submit 和 validate 失效

問題: 使用 jqueryui 的 dialog時,若內容是包在form中則會造成submit和validate失效
解法: .dialog({ appendTo: '#form1' })

2014年5月8日 星期四

列出需要重建的索引

SELECT
    OBJECT_SCHEMA_NAME(FRAG.[object_id]) + '.' + OBJECT_NAME(FRAG.[object_id]),
    SIX.[name],
    FRAG.avg_fragmentation_in_percent,
    FRAG.page_count
FROM
    sys.dm_db_index_physical_stats
    (
        DB_ID(),    --use the currently connected database
        0,          --Parameter for object_id.
        DEFAULT,    --Parameter for index_id.
        0,          --Parameter for partition_number.
        DEFAULT     --Scanning mode. Default to "LIMITED", which is good enough
    ) FRAG
    JOIN
    sys.indexes SIX ON FRAG.[object_id] = SIX.[object_id] AND FRAG.index_id = SIX.index_id
WHERE
    --don't bother with heaps, if we have these anyway outside staging tables.
    FRAG.index_type_desc <> 'HEAP' AND
    (
    --Either consider only those indexes that need treatment
    (FRAG.page_count > 128 AND FRAG.avg_fragmentation_in_percent > 10)  
    )
ORDER BY
    FRAG.avg_fragmentation_in_percent DESC;


※根據官方建議當索引的分裂情況在5% ~ 30%就需要重組。當超過30%的時候就最好是重建。

2014年3月5日 星期三

將 mvc 應用程式發佈到正式環境後當登入成功時顯示首頁卻出現錯誤訊息

錯誤訊息可能是以下幾種之一
HTTP Error 403.14 - Forbidden The Web server is configured to not list the contents of this directory.
[NullReferenceException: Object reference not set to an instance of an object.]
   System.Web.Mvc.AuthorizeAttribute.AuthorizeCore(HttpContextBase httpContext) +30

錯誤會發生在 return RedirectToAction("Index", "Home") 這種時候

解法:
需要到以下網址安裝hotfix 才能避免遇到此問題,這個問題在開發環境內建的 iis express 並不會遇到,但是在正式發布的 iis 環境就會出現
http://www.microsoft.com/zh-TW/download/details.aspx?displaylang=en&id=5272

2014年1月20日 星期一

sqlcommand select 轉成 datatable 速度很慢

避免使用動態產生的欄位
select *, isnull(case when charindex(' ', 期別) > 0 then substring(期別, 1, charindex(' ', 期別)) else 期別 end, '') 學員期別 from 報到紀錄檢視 <= 很慢
select *, b.期別 from 報到紀錄檢視 a outer apply (select 學員期別(a.sid) 期別) b <= 快多了

有時 join 某個view 也會有這問題,但撈取資料很快,轉成datatable 才會變慢

推測是非實體表格欄位容易有這問題,此時盡量改用純量函數來取得複雜資料,外面再包一個 select 應該也有效果


2014年1月17日 星期五

windows vpn 如何指定固定ip


針對 vpn 連線使用者新增群組並加入使用者
遠端存取新增遠端存取原則針對群組指派靜態ip
ip 分配範圍要避開

2014年1月13日 星期一

字串如何轉bool

function parseBool(input) {
    if (input == 'true') return true;
    else return false;
}

Entity Framework 建立新物件並儲存後馬上取得關聯資料

使用 CreateProxy 建立物件,不要直接 new var newmodel = _contextXXX.CreateProxy<yyy>(); ... _contextXXX.yyy.Add(newmodel); await _contextXXX.SaveC...