SQLServer還原DB
還原DB12345678910111213--讀取備份檔案,因為要知道到Data跟Log的名稱 這邊的N代表是UnicodeRESTORE FILELISTONLYFROM DISK = N'[your.bak PATH]'go--要先創建一個新資料庫還有記得切換到master,還原到正在執行時的資料庫時記得確定沒有東西在使用資料庫不然會跳錯restore database [newDB NAME]from DISK = N'[your.bak PATH]'WITH move '[DataFileName]' to '[newDB_DataFileName.mdf_PATH]',move '[LogFileName]' to '[newDB_LogFileName.ldf_PATH]',Replace, RecoveryGO
WorldEditor常用技巧 1
前言WorldEditor是魔獸爭霸自帶的地圖編輯器,其功能強大讓魔獸爭霸這款有二十年歷史的遊戲依然活耀。會寫這篇是因為中文參考資源日漸稀少,魔獸爭霸中文圈生態近年也是改變很多,中文玩家以及作者、翻譯者都流向中國大型平台,平台支援的各種API也讓地圖不像以前一樣流通,一般版本的編輯器資訊也就變得很稀少並且破碎讓新手難以入門,在這邊整理一些常見的技巧做個紀錄也供大家參考。自訂資料在單位編輯器中有一個欄位是自訂義資料,可以在裡面放一些數據在編輯器中讀取,可以用hashtable取代假人(dummy、馬甲)假人是非常廣泛用到的一種技巧,比如單位重生、自訂義投射物模型、多重施法、科技檢測等都會用到,他本身就只是一個普通單位通常會用苦工當模板並且使用以下設定普通技能
中立無敵
蝗蟲
隱形
其他設定
移動速度: 0
移動:無
碰撞體積: 0
視野: 0
攻擊: 無
不可逃跑
生命回復: -1
實際應用 自訂義投射物以下來源是我自己做地圖時寫出來的通用系統全使用Jass,只要設定好都是可以用的,不懂Jass的小夥伴不用擔心之後會寫一篇簡易的入門文章,以下會分兩個觸發器工作分別是設定創建投射物單位 ...
React + Firebase 即時聊天系統
使用的有
FireBase realtime database , functions , Cloud FireStore
Post man
node 8 (因為免費專案只能用 node 8 更高的版本要升級帳戶才能使用 cloude function,node 8 只支援到 2021 年)
express
一開始是用 react native 做因為這原本是某個案子的 demo 有簽保密協議只好重寫成網頁版,網頁版正在慢慢補上所以先講 firebase 的部分就好,firebase 在設計資料結構的時候要注意
結構不能太深 ,平面化
鍵值沒指定的話都是自動產生的亂數 document id,你要自己在文件內搞一個 id 來撈你要的資料 比如 uid,在建立使用者的時候會建立的一個獨一無二字串來把各個集合內的資料串起來
Storage 的資料設計差不多是這樣123456789"userHandle":{ ... userID: "uid"}"roomID":{ ... ...
AspMvc路由至靜態Html
12345public ActionResult MyHtml({ var result = new FilePathResult($"~/Views/{htmlPageName}.html", "text/html"); return result;}
SQL優化
SQL Server 事件監視器開啟位置 [工具]->SQL Server ProfilerSQL Server Profiler 是一個很有用的工具,可以看 SQL 在執行時實際在發生哪些事情還有查看 TSQL 在執行時的樣子,可以找出一些不好找到的錯誤還有追蹤效能SQL Server 執行計畫 用戶端統計資料開啟位置 [查詢] -> 包括用戶端統計資料 / 包括實際執行計畫可以看到 SQL 執行每段查詢時的效能還有用戶端使用時間用 UNION ALL 取代大量 OR12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 --未修改前 執行時間為 12秒 CPU使用率100% DROP TABLE IF EXISTS #TempPreMemberJoin DROP TABLE IF EXIST ...
JsonConvert.DeserializeObject()的空字串遺失字串處理
設定 JsonSerializerSettings12345var settings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, MissingMemberHandling = MissingMemberHandling.Ignore };
測量程式碼區塊執行時間
使用 System.Diagnostics12345//Stopwatch stopWatch = Stopwatch.StartNew();/*要測試的區塊放這*/stopWatch.Stop();Trace.WriteLine("使用時間: "+ stopWatch.ElapsedMilliseconds);
c#去除HtmlTag
使用正則表達式 RegularExpression1234public static string StripHTML(string input){ return Regex.Replace(input, "<[a-zA-Z/].*?>", String.Empty);}
Asp.Net UpdatePanel筆記
UpdatePanelUpdatePanel 是 Asp.net WebForm 的一個控件,功能是讓區塊內的元素能實現 ajax 讓 post 時不再刷新整個頁面只單獨更新區塊內的控件,使用方式123456789<asp:UpdatePanel id="controlID" runat="server" UpdateMode="Always" class=""> <ContentTemplate> //需要更新的物件放在這 </ContentTemplate> <Triggers> //監聽的控件事件,事件觸發時會呼叫UpdatePanel的更新方法對Panel做更新 <asp:AsyncPostBackTrigger ControlID="controlID" EventName="eventName" /> ...
Asp.NET WebForm前端傳遞資料到C#
使用 HiddenField這是 ASP 的 HiddenField 控件屬性
ID:ASP 的控件都會需要 ID 這會在 designer.aspx.cs 中使用 ID 名稱自動建立控件提供 aspx.cs 檔案操作控件
runat:標示為伺服器端控件讓伺服器端可以直接訪問
Value:可以填一些字串資料在裡面,hiddenField 會用 Post 方法回傳至伺服器端
1<asp:HiddenField ID="HiddenData" runat="server" Value="" />
使用 JavaScript 填入資料12//可以用ID訪問元素var hiddenField = document.querySelector('#HiddenData')
12//跟一般的元素屬性操作一樣,指定vlaue為想要的字串就可以了hiddenField.value ="我很隱密"
缺點不能放一些敏感的資訊比如 Token 之類的因為可以直接在前端看到並且修改,真的要傳 ...