Category Archives: .Net Tips And Tricks

SQL Server Rebuild Index for all the tables via TSQL – 如果幫資料庫重建索引所有表單

Rebuild Index 相信是 Database Maintenance 的其中一個重要任務

如何 Rebuild All Index for All the table in a database

解決方法十分簡單.

SQL Server Management Studio (SSMS) 選擇了Database之後
建立一個新的Query

之後我們可以執行以下的 SQL程式碼

 
DECLARE @TableName varchar(255) 
 
DECLARE TableCursor CURSOR FOR 
 
SELECT table_name FROM information_schema.tables 
 
WHERE table_type = 'base table' 
 

OPEN TableCursor 
 
FETCH NEXT FROM TableCursor INTO @TableName 
 
WHILE @@FETCH_STATUS = 0 
 
BEGIN 
 
DBCC DBREINDEX(@TableName,' ',70) 
 
FETCH NEXT FROM TableCursor INTO @TableName 
 
END 
 
CLOSE TableCursor 
 
DEALLOCATE TableCursor 

我們可以參考 Technet SQL Gallery
https://gallery.technet.microsoft.com/scriptcenter/Script-for-rebuilding-all-8d079754

Hope you find it useful

.Net How to Add slash correctly for Path – 如何安全地建立資料夾路徑

公司需要寫了一個小小的Document Repository 的功能

還記得之前自己經驗有時候使用者會把他們輸入的路徑會有”/“.. 但是有時卻沒有
所以我之前便寫了一個很無聊的功能 AddSlash.. 去檢查 User Input是不是以 / 來開首或結尾..
之後再幫這個User Input 適當地加上 Slash

最近發現原來.Net Framework自己已經有一個很好用的功能
Path.combine. 你可以把Path 放進他的變數內..
之後他便會幫你建立你的Path/路徑

E.G.

using System;
					
public class Program
{
	public static void Main()
	{
		string driveLetter = @"D:\";
		string folder1 = "Data";
		string folder2 = @"Files\";
	    string folder3 = @"sharechiwai";
		string t = System.IO.Path.Combine(driveLetter, folder1, folder2,folder3);
		
		// Return output
		Console.WriteLine(t);
	}
}

.Net Path.Combine functionHope you find it useful

.Net Shorthand for coding – .Net 如何寫更簡潔的程式碼

在寫新的Module時候感到自己之前寫的 程式碼比較長..
太多變數..所以有時會令到可讀性減低
所以便決定用一個更簡潔的方法去寫我的程式碼..

今日想和大家分享的是如果用ShortHand的方法寫一些
+-*/既 operator

我們可用
variable [Operator e.g. +-*/] = 另一個 variable

E.G.

using System;

public class Program
{
	public static void Main()
	{
		// Declare Variable i
		int i = 100;
		
		// Assign  variable
		i = i + 1;
		Console.WriteLine(i.ToString());
		
		// shorthand apply +-*/ to variable
		i -= 10;
		Console.WriteLine(i.ToString());
		
		// Assign variable to -10
		i =-10;
		Console.WriteLine(i.ToString());
	}
}

.Net ShortHand Operator
Hope you find it useful

How to show 2 Decimal Place in C# – 如何在C# 上把數字顯示為兩個小數位

今天的ASP.Net MVC Application 需要做一些數字格式化
因為在Database 上他的 DataTypeMoney
當他們出現在DataTable 時顯示在WebGrid時便會變成 4個小數位
e.g. 10.0000

如何在C# 上把數字顯示為兩個小數位呢?

解決方法十分簡單:
我們,可以使用String.Format 來解決

decimal number = 0.1234567
string.Format("{0:0.00}", number)

Hope you find it useful

.Net Wildcard Pattern Matching – 在.Net上如果使用Wildcard的Pattern matching呢?

現在寫程式時..很多人會使用Regular Expression 來做Pattern Matching
來檢查字串的值符合 pattern 所包含的模式嗎.
http://msdn.microsoft.com/zh-tw/library/swf8kaxw.aspx

VB.Net上 他有一個 LIKEOperator/運算子
可以做到這個動作

可惜如果你是使用C Sharp的話
你便要自己寫一些功能去把這些Wildcard 轉換成Regular ExpressionPattern

以下是我寫的功能

        /// This static function is used to replace the regular wild card search text pattern to Regular Express pattern
        public static string WildCardToRegexPattern(string pattern)
        {
            return "^" + Regex.Escape(pattern).Replace("\\*", ".*").Replace("\\?", ".") + "$";
        }     

        /// This function is used to execute the wild card match which is similar to VB's LIKE function
        public static bool WildCardMatch(string input, string pattern)
        {
            // Execute pattern matching against the wild card after convert the wild card to Regular Expression pattern via WildCardToRegexPattern function
            return Regex.IsMatch(input, WildCardToRegexPattern(pattern));
        }

使用方法:

string input = "abc111";
string pattern = "*11*";

Console.WriteLine(WildCardMatch(input, pattern));

Hope you find it useful

.Net Convert DataTable to Json – 如何把DataTable轉換成Json Object

今天終於可以繼續在公司做ASP.Net MVC的Project了..
由於最近學了AngularJs 所以便喜歡把資料轉成 json
之後放在Angular上使用..

解決方法十分簡單

我們可以使用Json.Net
大家可以使用 Nuget來安裝 Json.Net

Install Json.NET via NuGet

之後做可以使用JsonConvert.SerializeObject()這個功能來把 DataTable轉成Json Object
E.g.

// Convert DataTable to Json as a String
string json = JsonConvert.SerializeObject(tbl, new DataTableConverter());
//output result
console.log(json);

Hope you find it useful

Linq compare 2 lists – .Net Check if Items Not exist on current List – 如何在2個Lists 中找出和第二個List不相同的Item 項目

之前和大家介紹了怎樣可以找出在2個List of String上找出2個List 都有的 Item 出來

今天想和大家介紹怎樣從兩個Lists 中找出 第一個List上 在第二個List裡面沒有的 Item

我們可以使用 ListExcept 功能

			// Source List with String A,B,C,D,E
			List listA = new List();
            listA.Add("A");
            listA.Add("B");
            listA.Add("C");
            listA.Add("D");
            listA.Add("E");

			// List To Compare with String 1,A,4,E,5
            List listB = new List();
            listB.Add("1");
            listB.Add("A");
            listB.Add("4");
            listB.Add("E");
            listB.Add("5");

			// Retrieve the List of String which does not appear on the second List
            List matchList = listA.Except(listB).ToList().ForEach(Console.WriteLine);


Linq compare 2 lists - .Net Check if Items Not exist on current List - 如何在2個Lists 中找出和第二個List不相同的Item 項目
Happy Coding