- ALTER DATABASE [DatabaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
- GO
- DBCC CHECKDB ([DatabaseName], REPAIR_ALLOW_DATA_LOSS)
- GO
- ALTER DATABASE [DatabaseName] SET MULTI_USER WITH ROLLBACK IMMEDIATE
- GO
- ALTER DATABASE [DatabaseName] SET ONLINE
- GO
Thứ Hai, 18 tháng 6, 2012
Sửa lỗi database bị Suspect trong MS SQL Server
Dùng câu lệnh sau để set ONLINE cho database bị SUSPECT
Mã hóa MD5 trong C# ASP.NET
Hàm mã hóa MD5 một chuỗi:
Tuy nhiên mình rất thích sử dụng theo kiểu Extension:
Lúc này thay vì :
string str = "abc";
string md5 = GetMD5(str);
mình gọi theo kiểu:
string md5 = str.ToMD5(); thấy pro hơn phải không mọi người. ^^!
- public static string GetMD5(string str)
- {
- MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
- byte[] bHash = md5.ComputeHash(Encoding.UTF8.GetBytes(str));
- StringBuilder sbHash = new StringBuilder();
- foreach (byte b in bHash)
- {
- sbHash.Append(String.Format("{0:x2}", b));
- }
- return sbHash.ToString();
- }
- public static string ToMD5(this string str)
- {
- MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
- byte[] bHash = md5.ComputeHash(Encoding.UTF8.GetBytes(str));
- StringBuilder sbHash = new StringBuilder();
- foreach (byte b in bHash)
- {
- sbHash.Append(String.Format("{0:x2}", b));
- }
- return sbHash.ToString();
- }
string str = "abc";
string md5 = GetMD5(str);
mình gọi theo kiểu:
string md5 = str.ToMD5(); thấy pro hơn phải không mọi người. ^^!
Xuất dữ liệu từ DataGridView ra Excel trong ASP.NET ( Export DataGridView To Excel in ASP.NET)
Cái này tham khảo từ các tiền bối thôi ^^!
- private static void ExportDataGridViewToExcel(Control dtg, string fileName)
- {
- HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + fileName);
- HttpContext.Current.Response.Charset = "UTF-8";
- HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
- HttpContext.Current.Response.ContentType = "application/ms-excel";
- dtg.Page.EnableViewState = false;
- System.IO.StringWriter tw = new System.IO.StringWriter();
- System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
- dtg.RenderControl(hw);
- HttpContext.Current.Response.Write(tw.ToString());
- HttpContext.Current.Response.End();
- }
Note:
Khi gặp báo lỗi Control '...' of type 'GridView' must be placed inside a form tag with runat=server
thì ở webpage nhớ override lại hàm VerifyRenderingInServerForm là ok.
- public override void VerifyRenderingInServerForm(Control control)
- {
- // không làm gì cả
- }
Chủ Nhật, 10 tháng 6, 2012
Sự khác nhau giữa Union và Union all trong SQL
^^! Lâu lâu không sử dụng nên note lại cho nhớ:
Union và Union all được sử dụng khi muốn trả về 1 tập hợp bằng việc gom chung lại 2 tập hợp cùng cấu trúc trong sql.
Điểm khác biệt giữa 2 từ khóa là:
- Sử dụng Union sẽ loại bỏ bớt các dòng trùng nhau trước khi trả về kết quả. Số lượng dòng của tập kết quả luôn luôn <= (nhỏ hơn hoặc bằng) tổng số dòng của 2 tập đem gom lại.
- Sử dụng Union all sẽ lấy hết tất cả các dòng của 2 tập hợp đem gom lại. Số lượng dòng của tập kết quả luôn luôn = (bằng) tổng số dòng của 2 tập đem gom lại.
Union và Union all được sử dụng khi muốn trả về 1 tập hợp bằng việc gom chung lại 2 tập hợp cùng cấu trúc trong sql.
Điểm khác biệt giữa 2 từ khóa là:
- Sử dụng Union sẽ loại bỏ bớt các dòng trùng nhau trước khi trả về kết quả. Số lượng dòng của tập kết quả luôn luôn <= (nhỏ hơn hoặc bằng) tổng số dòng của 2 tập đem gom lại.
- Sử dụng Union all sẽ lấy hết tất cả các dòng của 2 tập hợp đem gom lại. Số lượng dòng của tập kết quả luôn luôn = (bằng) tổng số dòng của 2 tập đem gom lại.
Sử dụng Cookie bằng javascript
Hôm nay mình làm chức năng đăng nhập bằng javascript, cần sử dụng cookie để lưu trữ thông tin đăng nhập cho phần nhớ mật khẩu. Đây là đoạn code javascript để sử dụng cookie mình tham khảo trên w3schools:
Xem thêm Sử dụng Cookie trong ASP.NET
- function getCookie(c_name) {
- var i, x, y, ARRcookies = document.cookie.split(";");
- for (i = 0; i < ARRcookies.length; i++) {
- x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
- y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
- x = x.replace(/^\s+|\s+$/g, "");
- if (x == c_name) {
- return unescape(y);
- }
- }
- }
- function setCookie(c_name, value, exdays) {
- var exdate = new Date();
- exdate.setDate(exdate.getDate() + exdays);
- var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString());
- document.cookie = c_name + "=" + c_value;
- }
Thứ Năm, 15 tháng 3, 2012
Tìm địa chỉ email trong 1 đoạn text sử dụng regex trong C#
Đoạn code tìm email đơn giản trong một đoạn văn bản bằng cách sử dụng regex:
- string containEmails = "abc@abc.com dfjd/->_ff.u@gmail.com";
- List<string> emails = new List<string>();
- MatchCollection mc = Regex.Matches(containEmails, @"[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}", RegexOptions.IgnoreCase);
- if (mc.Count > 0)
- {
- foreach (Match ma in mc)
- {
- string email = ma.Value;
- emails.Add(email);
- }
- }
Thứ Ba, 13 tháng 3, 2012
cập nhập dữ liệu trên view trong Sql Server
Trong trường hợp view được tạo thành từ một bảng duy nhất và các cột của view thuộc danh sách các cột của bảng chính, hay nói cách khác view là một phần nhỏ của bảng chính thì có thể cập nhập trực tiếp dữ liệu trên view, lúc đó dữ liệu trên bảng chính cũng cập nhập theo.
Thao tác cập nhập này tương đương với thao tác cập nhập trên bảng chính nên vẫn phải phụ thuộc vào các ràng buộc trên bảng chính.
Thao tác cập nhập này tương đương với thao tác cập nhập trên bảng chính nên vẫn phải phụ thuộc vào các ràng buộc trên bảng chính.
Đăng ký:
Bài đăng
(
Atom
)