2019年10月28日 星期一

chrome command 指令小抄


--disable-infobars 可用於隱藏 windows xp 開啟chrome時上面都會出現 停止支援的黃色訊息

--start-fullscreen  開啟chrome後直接進入全螢幕模式( F11),目前在chrome 49 有效,我目前最新版chrome 77 執行無效

2019年10月16日 星期三

[網站開發筆記]axios.post 參數如何從ASP.NET 的Request物件取出

         axios get 傳參數時 用 params 包起來後會以Query String方式傳遞在ASP.NET 可以用 Request["..."] 或 Request.QueryString["..."]取得:

例如:
                    axios.get("xxxxx.aspx", params:{ id : 'abc' })
                    .then((res) => { })
   
         
                   String id = Request["id"];

       
                    axios.post("xxxxx.aspx", { id : 'abc' })
                    .then((res) => { })

         axios post 傳參數時 在ASP.NET 用 Request["..."] 或 Request.QueryString["..."]會取不到資料,因為post是將參數放在 Request Payload中,所以要透過Request.InputStream將資料取出,
可再透過 JsonConvert.DeserializeObject轉成json物件來做後續處理

     
        StreamReader stream = new StreamReader(Request.InputStream);
        String requestPayload = stream.ReadToEnd();
        var postData = JsonConvert.DeserializeObject<dynamic>(requestPayload);

     
          String id = postData["id"];
     

2019年10月3日 星期四

[Notepad++]實用正規表示式語法移除空白列


^\s  : 搜尋空白列: 在取代空白列時很好用

整理資料時有一些空白行要移除,可參考以下方式

範例資料:


Ctrl + H 進行開啟取代視窗:
    a.尋找內容:  ^\s
    b.搜尋模式點選 “規則運算式”
    c.執行全部取代
 


取代結果如下:
  (注意,以此語法最後一行空白列不會取代到)



彩蛋~~~
其實Notepadd++已有內建這個功能了,
不用這麼累 XD:





2019年10月1日 星期二

Google雲端硬碟檔案無法下載 HTTP ERROR 403 問題

接獲報案:客戶提供Google Drive的共用檔案連結,裡面的檔案無法下載

該連結是可以查看到檔案的(如下),但點選Download後會出現如下訊息

存取 doc-00-ak-docs.googleusercontent.com 的要求遭到拒絕


經查原因是用戶在該瀏覽器或狀置中有以多個不同google帳號登入
Google因潛在安全性的問題而有這個授權不足限制。

Google Drive Help 有相關的issue討論

解決方式是將帳號都登出,再以一個帳號登入即可


[SQL Server] SQL語法 Where 條件查詢簡體中文問題

很基本的常識:

資料庫的欄位為 nvarchar
以下SQL語法查詢時簡體中文會查不到資料

select *
   from xxxx
 where col like '%%'

Sql語法中如要查詢 utf-8的欄位須加上 N

select *
   from xxxx
 where col like N'%%'

[ASP.NET] ADO.NET Parameters.AddWithValue 效能問題

最近發現在一個簡單的查詢語法發現效能不佳,
經查發現問題出在SqlCommand參數化查詢使用 AddWithValue,
改善後 原查詢耗時 950 ms 調整後為 24 ms!


參考: 史丹利好熱 的相關文章:

[.NET] ADO.NET Parameters.AddWithValue 對於SqlDbType的抉擇


史丹利好熱文中提到:

AddWithValue 參數化查詢時,在DbType的選擇是採.NET資料類型來決定,若查詢參數型別與實際欄位不同時有時可能會造成額外的成本

解決方式:

不要使用AddWithValue,改用 SqlParameter,並指定 SqlDbType
範例:
            SqlCommand cmd = new SqlCommand(qs, sqlConnection);
            SqlParameter p_gen01 = new SqlParameter();
            p_gen01.SqlDbType = SqlDbType.VarChar;
            p_gen01.ParameterName = "@empno";
            p_gen01.Value ="ep0020";


若使用Dapper 指定型態方式,參考範例:
            var result = sqlConnection.Query(qs,
                                            new { empno = new DbString() {
                                                Value = "ep0020",
                                                IsAnsi = true, } });