Thứ Hai, 26 tháng 12, 2011

Mã Html của một số ký tự đặc biệt

Do một số ký tự đăc biệt bị trùng với các từ khóa cú pháp của html nên phải chuyển qua dạng mã để không bị lỗi hoặc bị trình duyệt hiển thị nhầm. Đặc biệt trong trường hợp cần truyền tham số là 1 chuỗi html vào 1 hàm javascript.
Kết quả Loại Tên của ký tự Số

một khỏang trắng    
< nhỏ hơn &lt; &#60;
> lớn hơn &gt; &#62;
& dấu và &amp; &#38;
ngoắc kép &quot; &#34;
ngoặc đơn &apos; (does not work in IE) &#39;
tham khảo: http://hocvietcode.eu5.org/cac-ky-tu-dac-biet/

Viết hoa chữ cái đầu các từ trong 1 chuỗi và loại bỏ các khoảng trắng thừa

  1.     public static string ToFirstUpper(string s)  
  2.     {  
  3.         if (String.IsNullOrEmpty(s))  
  4.             return s;  
  5.   
  6.         string result = "";  
  7.   
  8.         //lấy danh sách các từ  
  9.   
  10.         string[] words = s.Split(' ');  
  11.   
  12.         foreach (string word in words)  
  13.         {  
  14.             // từ nào là các khoảng trắng thừa thì bỏ  
  15.             if (word.Trim() != "")  
  16.             {  
  17.                 if (word.Length > 1)  
  18.                     result += word.Substring(0, 1).ToUpper() + word.Substring(1).ToLower() + " ";  
  19.                 else  
  20.                     result += word.ToUpper() + " ";  
  21.             }  
  22.   
  23.         }  
  24.         return result.Trim();  
  25.     }   
  26.       

Chủ Nhật, 11 tháng 12, 2011

Giá trị max của bigint trong Sql

-9223372036854775808 -> 9223372036854775807 (8 bytes)
Kiểu bigint thường được sử dụng cho cột ID trong những bảng dữ liệu khổng lồ.
Một số kiểu int khác:  
-Kiểu Int : -2147483648 ->2147483647 (4 bytes)
-Kiểu SmallInt: -32768 ->32767 (2 bytes)
-Kiểu TinyInt: 0 -> 255 (1 byte)

Thứ Sáu, 2 tháng 12, 2011

Đoạn code Format Number ( ngắt theo ngàn, triệu ... ) bằng C#

Có 1 cách nhanh hơn là convert chuỗi về số sau đó sử dụng phương thức ToString(string format).
Đoạn code dưới đây chỉ là ý tưởng về cách làm.
  1. public static string FormatNumber(string number)  
  2. {  
  3.     try  
  4.     {  
  5.         // lấy phần nguyên    
  6.         string[] part = number.Split('.');  
  7.         int len = part[0].Length;  
  8.         int i = len / 3;  
  9.         if (i > 0)  
  10.         {  
  11.             int pos = len % 3;  
  12.             if (pos > 0)  
  13.             {  
  14.                 part[0] = part[0].Insert(pos, ",");  
  15.                 pos += 4;  
  16.             }  
  17.             else  
  18.             {  
  19.                 pos = 3;  
  20.             }  
  21.   
  22.             for (int k = 1; k < i; k++)  
  23.             {  
  24.                 part[0] = part[0].Insert(pos, ",");  
  25.                 pos += 4;  
  26.             }  
  27.   
  28.         }  
  29.         if (number.Contains("."))  
  30.         {  
  31.             return part[0] + "." + part[1];  
  32.         }  
  33.         else  
  34.             return part[0];  
  35.     }  
  36.     catch  
  37.     {  
  38.         return number;  
  39.     }  
  40. }  
Note: Đoạn code chưa bao gồm xử lý trường hợp số âm

Chủ Nhật, 20 tháng 11, 2011

Tự động xuống dòng khi chuỗi quá dài trong html

Thường thường khi ta đặt 1 chuỗi quá dài trong 1 thẻ html có kích thước cố định nào đó, nếu chuỗi có ngắt khoảng trắng từng từ thì trình duyệt sẽ tự động xuống hàng khi độ dài của chuỗi vượt quá kích thước của thẻ html
Trong trường hợp chuỗi kí tự viết liền nhau không có ngắt từ thì chuỗi sẽ bị vượt ra ngoài thẻ html.
Những người mới viết web người ta thường ít chú ý đến điều này vì khi test chuỗi nhập vào hợp lệ. Nếu người dùng nhập 1 đoạn liên tục nhau và không có khoảng trắng thì khi hiển thị lên sẽ bị vượt ra ngoài và layout sẽ bị bể.

Trường hợp nếu bạn muốn chuỗi vẫn nằm gọn trong thẻ html thì cần thêm thuộc tính style='word-wrap:break-word; ' , lúc này chuỗi sẽ tự động xuống dòng khi kích thước vượt quá kích thước của thẻ html.
Chú ý : mặc định nếu chuỗi bao gồm các từ ngắn có ngắt khoảng trắng thì chuỗi sẽ tự động xuống dòng, chỉ với trường hợp chuỗi nhập vào là 1 chuỗi liền nhau không có khoảng trắng  ngắt từ (thì sẽ bị hiểu là 1 từ) ta mới phải dùng cách này. Tuy nhiên cách tốt nhất khi design ta lên thêm thuộc tính đó vào vì không thể biết trước được người dùng sẽ nhập cái gì.

Thứ Sáu, 18 tháng 11, 2011

Cập nhập - Đưa dữ liệu từ Table này sang Table khác

 Đưa dữ liệu từ bảng A sang bảng B
Insert A(col1,col2)
Select col1,col2 from B

Cập nhập dữ liệu bảng A từ bảng B
Update a set a.Col= b.Col from A a join B b on a.JoinCondition = b.JoinCondition

Trộn 2 bảng lại với nhau:
MERGE INTO Target AS C -- Target
USING Source AS B -- Source
ON C.JoinCondition = B.JoinCondition
WHEN NOT MATCHED and THEN -- Add missing
INSERT (col1,col2,…)
VALUES (B.col1,B.col2,…);
WHEN MATCH THEN
        UPDATE SET C.col = B.col
WHEN SOURCE NOT MATCHED THEN -- Delete missing from source
DELETE;

Thứ Năm, 10 tháng 11, 2011

Cách viết Stored Procedure Phân Trang trong MS Sql Server

Giới thiệu với các bạn cách phân trang dữ liệu trong Sql server:

CREATE PROCEDURE [spPhanTrang]
@currPage int,-- trang hiện tại
@recodperpage int -- số dòng trên 1 trang
AS
Begin
    Begin
    -- lấy dữ liệu và chỉ số dòng (row) của nó
    WITH Temp AS
    (
    SELECT ROW_NUMBER()

    -- ColumnName là tên của các cột cần lấy
    OVER(ORDER BY Tên cột muốn Order ) AS Row, ColumnName

    FROM TableName -- tên của bảng cần lấy dữ liệu

    )

    -- lấy các dòng có chỉ số row phù hợp các các tiêu chí phân trang
    Select * From Temp
    Where Row Between (@currPage - 1)*@recodperpage+1 AND @currPage*@recodperpage
    END
END

Phân trang sử dụng OFFSET/ FETCH trong SQL Server 2012

Thứ Năm, 27 tháng 10, 2011

Chuyển tới cuối ngày

Đoạn code chuyển tới thời điểm cuối ngày (11h 59' PM) của một ngày. Cách làm đơn giản thôi nhưng lưu lại khi nào cần thì lấy xài cho nhanh. ^^!
  1. public static DateTime GoToEndOfDay(DateTime date)  
  2. {  
  3.     int y = date.Year;  
  4.     int M = date.Month;  
  5.     int d = date.Day;  
  6.     DateTime endOfDay = new DateTime(y, M, d).AddDays(1).AddMinutes(-1);  
  7.     //hoặc  
  8.     //DateTime endOfDay = new DateTime(y, M, d, 23, 59, 0, 0);  
  9.     return endOfDay;  
  10. }