Pages - Menu

2017年9月30日 星期六

Sysprep命令查詢

有些加密的軟體(有server中控的)、虛擬機器,
做動作時,都會讀取電腦的 SID(Security Identifie)
當唯一值,如果有SID衝到,就有很大的機會會發生奇怪的問題。
例如,兩台電腦一直在搶登入的帳號,或是虛擬機器碼重複…

2017年9月27日 星期三

Dapper 使用 in 帶入參數

今天碰到的問題,

要在不同的server取資料出來做比對。

來達成我未來的懶人生活。

才發現不知道怎麼下in的條件丟去dapper裡面。

正常的寫法為

using (var cn = new SqlConnection(mst_fatekConnStr))
{
     string strSql = string.Format(@"select a,b,c from item where add_dt >=@add_dt");
     var list = cn.Query<ItemModels>(strSql,new { add_dt = add_dt});

}

在來如果要把上面的欄位 a 拉出來當作子查詢的參數,想要的sql是這樣

select * from item where a in ( select a from item where add_dt >= @add_dt)

現在要用dapper解決 in帶參數的問題

最簡單的應該是 用foreach 把每一個欄位的值拉出來,前後加上 單引號 以及 逗點 串成字串,

另外一種

var items_no = list.Select(p=>p.a).ToList<string>();
string strSql2 = string.Format(@"select a,b,c from item where add_dt >=@add_dt and a not in @items_no");
var list2 = cn2.Query<ItemModels>(strSql2, new { add_dt = add_dt,items_no = items_no });


雖然跟上面用foreach的方式差不多,但這個只要一行就解決,

不用在用foreach串字串了。

參考:stackoverflow

2017年9月26日 星期二

TFS 路徑已在工作區XXX中對應之解決方案

使用的環境為TFS 2017 ,其他版本的是否可使用未知。
先前的TFS伺服器掛掉了,
所幸資料還有備份出來,
把該安裝的都裝完後,要重新對應就會出現,
該路徑已經工作區中對應,
但我先前的伺服器掛掉了,又不可能連過去把舊的砍掉。
試過許多方法,目前最快的方式應該是下面。

2017年9月20日 星期三

Hyper-V 底下再跑Hyper-V

目前的狀況是要把Server做備份,
Server都是架在Hyper-V上面。
但如果要在HV底下再做一個HV就是作業系統內的作業系統再弄一個HV就會掛掉。
最簡單的解決方法就是不使用HV(硬體層)改用VM(軟體層)來做取代。
但只是想要單純的做『複寫』這個動作,就只是要備份而已。
所以就直接上了!!!

2017年9月4日 星期一

EPPLUS 使用公式 Formula

補充之前寫的EPPLUS,
這次是套用公式,
因為不想再excel產生的時候,還要全部跑完算加總。
就乾脆套公式了。

excel的語法SUM應該都知道


            int startRowNumber = sheet1.Dimension.Start.Row;//起始列編號,從1算起
            int endRowNumber = sheet1.Dimension.End.Row;//結束列編號,從1算起
            int startColumn = sheet1.Dimension.Start.Column;//開始欄編號,從1算起
            int endColumn = sheet1.Dimension.End.Column;//結束欄編號,從1算起
            sheet1.Cells[endRowNumber + 1, 8].Formula = "SUM(H2:H" + endRowNumber + ")";


另外補充幾點國外網友寫的注意事項
  • Don't use localized function names. Only english names (such as SUM, IF, VLOOKUP, etc) are supported.
  • Don't use semicolon as a separator between function arguments. Only comma is supported.
  • Don't add the leading = sign in your formula. "=SUM(A1:A2)" is wrong, "SUM(A1:A2)" is correct
ref.stack overflow

第一點,不要用本地的語言,只能用SUM ,IF 之類的..(我也不知道能夠用本地語言輸入)
第二點,不能用『分號』當作函數間的分隔器,要用『逗號』
第三點,不要在公式前面加上 『=』