2018年4月26日 星期四

[Windows Server]使用批次檔複製事件檢視器紀錄檔

開啟記事本將以下程式碼貼入存成.bat
@ECHO OFF
set x=%date:~0,4%%date:~5,2%%date:~8,2%
CD C:\Windows\System32\winevt\Logs
COPY  Application.evtx  D:\bak\EventLog\Application%x%.evtx
COPY  Security.evtx  D:\bak\EventLog\Security%x%.evtx
COPY  Setup.evtx  D:\bak\EventLog\Setup%x%.evtx
COPY  System.evtx  D:\bak\EventLog\System%x%.evtx
ECHO finish
產生檔名:System20180426.evtx

接下來至排程設定執行時間即可。

2018年4月24日 星期二

[C#]DataSet 不支援 System.Nullable<>解決方案

 dt.Columns.Add(property.Name, Nullable.GetUnderlyingType(property.PropertyType) ?? property.PropertyType);

public DataTable ListToDataTable<T>(List<T> data)
        {
            PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(typeof(T));
            DataTable dt = new DataTable();
            for (int i = 0; i < properties.Count; i++)
            {
                PropertyDescriptor property = properties[i];
                //原本dt.Columns.Add(property.Name, property.PropertyType);
                dt.Columns.Add(property.Name, Nullable.GetUnderlyingType(property.PropertyType) ?? property.PropertyType); //解決DataSet 不支援 System.Nullable<>
            }
            object[] values = new object[properties.Count];
            foreach (T item in data)
            {
                for (int i = 0; i < values.Length; i++)
                {
                    values[i] = properties[i].GetValue(item);
                }
                dt.Rows.Add(values);
            }
            return dt;
        }

[Jquery]賦予動態產生物件事件

#RequestDept的內容是從後端產生,以下為賦予他change事件(其他事件也適用)

//使用$("body")也行
$(document).on("change", '#RequestDept', function () {
      alert('我是從後端產生的');
});

Visual Studio JS intellisense 失效解決方式

  試了好久,發現到工具>選項>IntelliCode js項目設定啟用,重新開啟VS就正常了! 後來發現是TypeScript3.2版有問題停用,使用4.3版的TypeScript即可