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後會出現如下訊息
經查原因是用戶在該瀏覽器或狀置中有以多個不同google帳號登入
Google因潛在安全性的問題而有這個授權不足限制。
Google Drive Help 有相關的issue討論
解決方式是將帳號都登出,再以一個帳號登入即可
該連結是可以查看到檔案的(如下),但點選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'%爱%'
資料庫的欄位為 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!
參考: 史丹利好熱 的相關文章:
史丹利好熱文中提到:
解決方式:
不要使用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, } });
經查發現問題出在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, } });
訂閱:
文章 (Atom)