Đào Hải Nam

Dùng biểu thức LINQ tùy biến với <asp:LinqDatasource> (LINQ to SQL phần 9)

Posted in Microsoft .NET by namdh on 05/08/2009

Vài tuần trước tôi bắt đầu viết loạt bài về LINQ to SQL. LINQ to SQL là một bộ khung (framework) có sẵn cho O/RM (object relational mapping) trong .NET 3.5, nó cho phép bạn dễ dàng mô hình hóa các CSDL quan hệ dùng các lớp .NET. Bạn có thể dùng các biểu thức LINQ để truy vấn CSDL, cũng như có thể cập nhật/thêm/xóa dữ liệu từ đó.

Dưới đây là 7 phần đầu tiên của loạt bài này:

(đọc tiếp…)

Tagged with: ,

Thực thi các biểu thức SQL tùy biến (LINQ to SQL phần 8)

Posted in Microsoft .NET by namdh on 03/08/2009

Vài tuần trước tôi bắt đầu viết loạt bài về LINQ to SQL. LINQ to SQL là một bộ khung (framework) có sẵn cho O/RM (object relational mapping) trong .NET 3.5, nó cho phép bạn dễ dàng mô hình hóa các CSDL quan hệ dùng các lớp .NET. Bạn có thể dùng các biểu thức LINQ để truy vấn CSDL, cũng như có thể cập nhật/thêm/xóa dữ liệu từ đó.

Dưới đây là 7 phần đầu tiên của loạt bài này:

(đọc tiếp…)

Tagged with: ,

Lỗi “Name ‘__o’ is not declared” trong trang ASP.NET

Posted in Microsoft .NET by namdh on 22/06/2009

Khi viết ASP.NET, bạn có thể gặp trường hợp sau:

- Khi dịch VS sẽ báo lỗi “Name ‘__o’ is not declared”  ở những dòng có dạng output (<%=”my value”%>), mặc dù bạn không có bất kỳ biến nào có tên __o.

- Những dòng lỗi này sẽ bị gạch chân trong trình soạn thảo.

- Tuy nhiên khi chạy chương trình vẫn bình thường.

(đọc tiếp…)

Tagged with:

ASP.NET MVC Release Candidate 2 ra mắt

Posted in Không phân loại by namdh on 04/03/2009

Bản ASP.NET MVC RC2 đã được giới thiệu hôm 03/03, trong bài này tôi sẽ nói sơ qua những thay đổi của phiên bản này so với phiên bản trước.

Có 3 thay đổi chính bao gồm.

  • Bản cài đặt yêu cầu .NET 3.5 SP1
  • Vẫn có thể triển khai bằng cách đưa các thư viện vào trong thư mục bin nếu dùng .NET 3.5 (không có SP1): khi cài ASP.NET MVC, các thư viện System.Web.Mvc, System.Web.Routing, System.Web.Abstractions sẽ được thêm vào GAC trên máy cài đặt. Điều này sẽ không gây ra vấn đề gì nếu bạn đang cài đặt và chạy ASP.NET MVC trên cùng một máy. Tuy nhiên, nếu bạn định triển khai lên một máy khác có thể sẽ gặp trục trặc nếu máy đó chưa được cài sẵn ASP.NET MVC. Bạn có thể giải quyết vấn đề bằng cách đưa các thư viện này vào thư mục bin của ứng dụng. Nếu dùng cách này, máy chủ của bạn chỉ cần .NET 3.5 (không có SP1) vẫn có thể chạy được.
  • Chế độ chỉ cài đặt cho server: Trong bản cài đặt này, bạn có thể cài ASP.NET MVC lên máy tính không có Visual Studio, trong trường hợp đó, bộ cài đặt sẽ không cài đặt các template cho VS, các thư viện sẽ vẫn được cài đặt vào GAC và các native image vẫn được tạo.

Bạn có thể tải về bản ASP.NET MVC RC2 tại đây.

Mã nguồn có thể tải về tại đây.

Tagged with: , ,

Cập nhật cơ sở dữ liệu (LINQ to SQL phần 4)

Posted in Microsoft .NET by namdh on 06/01/2009

Từ vài tuần trước, tôi đã bắt đầu một loạt bài nói về LINQ to SQL. LINQ to SQL là một O/RM có sẵn trong bản .NET Framework 3.5, và nó cho phép bạn dễ dàng mô hình hóa các CSDL cùng các lớp .NET. Bạn có thể dùng các biểu thức LINQ để truy vấn CSDL, cũng như để thêm/xóa/sửa dữ liệu.

Dưới đây là 3 bài đầu tiên trong loạt bài này:

Trong bài hôm nay, tôi sẽ nói rõ hơn về cách chúng ta dùng CSDL đã được mô hình hóa trước đây, và dùng nó để cập nhật, chỉnh sửa và xóa dữ liệu. Tôi cũng sẽ cho các bạn thấy các chúng ta có thể thêm các quy tắc (business rule – sau này trở đi tôi sẽ để nguyên từ business rule, vì từ này rõ nghĩa hơn) và tùy biến cách xác thực tính hợp lệ của dữ liệu. (đọc tiếp…)

Tagged with: , ,

Liên kết để tải về bản VS 2010 và .NET 4.0 CTP

Posted in Không phân loại by namdh on 03/12/2008

Bản CTP này được chứa trong một file ảnh đĩa cứng dùng trong Virtual PC, bạn tải về và chạy file .exe để tạo:
http://download.microsoft.com/download/9/7/4/97467b12-d04b-463f-b703-0e334c177799/VisualStudio2010CTP_11PartsTotal.part01.exe
http://download.microsoft.com/download/9/7/4/97467b12-d04b-463f-b703-0e334c177799/VisualStudio2010CTP_11PartsTotal.part02.rar
http://download.microsoft.com/download/9/7/4/97467b12-d04b-463f-b703-0e334c177799/VisualStudio2010CTP_11PartsTotal.part03.rar
http://download.microsoft.com/download/9/7/4/97467b12-d04b-463f-b703-0e334c177799/VisualStudio2010CTP_11PartsTotal.part04.rar
http://download.microsoft.com/download/9/7/4/97467b12-d04b-463f-b703-0e334c177799/VisualStudio2010CTP_11PartsTotal.part05.rar
http://download.microsoft.com/download/9/7/4/97467b12-d04b-463f-b703-0e334c177799/VisualStudio2010CTP_11PartsTotal.part06.rar
http://download.microsoft.com/download/9/7/4/97467b12-d04b-463f-b703-0e334c177799/VisualStudio2010CTP_11PartsTotal.part07.rar
http://download.microsoft.com/download/9/7/4/97467b12-d04b-463f-b703-0e334c177799/VisualStudio2010CTP_11PartsTotal.part08.rar
http://download.microsoft.com/download/9/7/4/97467b12-d04b-463f-b703-0e334c177799/VisualStudio2010CTP_11PartsTotal.part09.rar
http://download.microsoft.com/download/9/7/4/97467b12-d04b-463f-b703-0e334c177799/VisualStudio2010CTP_11PartsTotal.part10.rar
http://download.microsoft.com/download/9/7/4/97467b12-d04b-463f-b703-0e334c177799/VisualStudio2010CTP_11PartsTotal.part11.rar

Để dùng, bạn cần có Virtual PC đã cập nhật lên SP1, cấu hình đề nghị bao gồm:

 

  • Hệ điều hành: Windows Server 2003; Windows Server 2008; Windows Vista; Windows XP
  • 75 GB đĩa cứng trống
  • Máy tính chủ cài đặt Virtual PC có tối thiểu 2GB RAM, trong đó 1 GB được cấp cho máy ảo.
  • Bộ xử lý nên là Core Duo 2 GHz.

Tài khoản đăng nhập và mật khẩu cho máy ảo: 

  • Administrator: TFSSETUP, password: 1Setuptfs
  • Administrator: Administrator,password: P2ssw0rd
  • User: TFSREPORTS, password: 1Reports
  • User: TFSSERVICE, password: 1Service

Khi sử dụng, bạn sẽ nhận được yêu cầu kích hoạt Windows, bạn có thể đơn giản bỏ qua thông điệp này. Với Word, Excel bạn chỉ được sử dụng 20 lần, Project được sử dụng 25 lần. Bản VS 2010 CTP chỉ có thể sử dụng đến 01/01/2009, nếu muốn sử dụng tiếp, bạn phải đổi lại ngày hệ thống.

Tagged with: ,

C# 4.0: Đặt giá trị mặc nhiên cho tham số

Posted in Microsoft .NET by namdh on 03/12/2008

Trong C# 4.0, bạn có thể khai báo và sử dụng các tham số tùy chọn, giống như trong ví dụ sau:

public static class OptionalDemoLib
{
   public static void SayHello(string s = “Hello World!”)
   {
      Console.WriteLine(s);
   }
}

Trong đó, tham số s có một giá trị mặc nhiên, khi đó bạn có thể gọi hàm SayHello mà có thể truyền giá trị cho nó hoặc không, trong trường hợp không truyền tham số, giá trị mặc nhiên sẽ được dùng:

public static class OptionalDemo
{
   public static void Main()
   {
      OptionalDemoLib.SayHello();
      OptionalDemoLib.SayHello(“Hello Bart!”);
   }
}

Nhớ rằng các tham số tùy chọn phải được đặt cuối danh sách tham số, nếu không bạn sẽ nhận được thông báo lỗi sau:

optlib.cs(3,58): error CS1737: Optional parameters must appear after all required parameters

Khai báo như trong ví dụ sau là không hợp lệ:

public static void SayHello(string s1 = “Hello World!”, string s2)

Khái niệm giá trị mặc nhiên này đã có từ lâu trong VB, nay cũng sẽ xuất hiện trong C#, điều này sẽ giúp chúng ta viết code một cách nhanh chóng hơn.

Tagged with: ,

WPF ListView – Lấy đối tượng được click

Posted in Microsoft .NET by namdh on 02/12/2008

Trong WPF, để lấy được đối tượng mà người dùng vừa click chuột trong một ListView, các bạn có thể làm như sau:

Đầu tiên bạn cần đăng ký hàm xử lý cho sự kiện nhấn chuột:

MyListView.MouseDoubleClick += new MouseButtonEventHandler(MyListView_MouseDoubleClick);
chú ý là bạn có thể đăng ký cho các hàm nhấn chuột khác như MouseLeftButtonDown, MouseRightButtonDown… và sau đó viết hàm xử lý sự kiện giống như sau:
void MyListView_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
   DependencyObject dep = (DependencyObject)e.OriginalSource;

   while ((dep != null) && !(dep is ListViewItem))
   {
       dep = VisualTreeHelper.GetParent(dep);
   }

   if (dep == null)
        return;

   MyDataItemType item = (MyDataItemType)MyListView.ItemContainerGenerator.ItemFromContainer(dep);

   // Do something with the item...
}
Cách chúng ta làm là đầu tiên, ta phải xác định đối tượng trực quan mà người dùng vừa nhấn chuột lên, từ đó chúng ta lần theo các đối tượng chứa nó cho đến khi tìm được một ListViewItem, và nhờ đó ta có thể tìm được đối tượng dữ liệu tương ứng. Nếu muốn lấy chỉ số thay vì đối tượng, dùng hàm IndexFromContainer().
Đoạn mã trên được viết trong VB.NET như sau:
Dim dep As DependencyObject = CType(e.OriginalSource, DependencyObject)
While ((dep IsNot Nothing) AndAlso Not (TypeOf (dep) Is System.Windows.Controls.ListViewItem))
    dep = VisualTreeHelper.GetParent(dep)
End While
If (dep Is Nothing) Then
    Return
End If
Dim item As MyDataItemType = CType(MyListView.ItemContainerGenerator.ItemFromContainer(dep), MyDataItemType)
Theo http://mikescodeblog.blogspot.com
Tagged with: ,

Truy vấn Cơ sở dữ liệu (LINQ to SQL phần 3)

Posted in Microsoft .NET by namdh on 21/11/2008

Tháng trước tôi bắt đầu viết loạt bài về LINQ to SQL. LINQ to SQL là một bộ khung (framework) có sẵn cho O/RM (object relational mapping) trong .NET 3.5, nó cho phép bạn dễ dàng mô hình hóa các CSDL quan hệ dùng các lớp .NET. Bạn có thể dùng các biểu thức LINQ để truy vấn CSDL, cũng như có thể cập nhật/thêm/xóa dữ liệu từ đó.

Dưới đây là hai bài đầu tiên trong loạt bài LINQ to SQL:

Trong bài viết này, tôi sẽ đi sâu hơn vào cách chúng ta dùng mô hình dữ liệu đã tạo trong phần 2, và cách dùng nó để truy vấn dữ liệu bên trong một dự án ASP.NET.

(đọc tiếp…)

Tagged with: , ,

Định nghĩa các lớp mô hình dữ liệu (LINQ to SQL phần 2)

Posted in Không phân loại, Microsoft .NET by namdh on 07/11/2008

Trong phần một, tôi đã thảo luận về “LINQ to SQL là gì” và cung cấp một cái nhìn cơ bản về những trường hợp chúng ta có thể sử dụng nó.

Trong bài viết đầu tiên, tôi cũng đã cung cấp các đoạn code mẫu để biểu diễn cách xử lý dữ liệu dùng LINQ to SQL, bao gồm:

  • Cách truy vấn dữ liệu
  • Các cập nhật dữ liệu
  • Cách chèn và tạo quan hệ các dòng trong một CSDL
  • Cách xóa các dòng trong một CSDL
  • Cách gọi một thủ tục
  • Cách lấy dữ liệu và phân trang trên server

(đọc tiếp…)

Tagged with: , ,