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

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à 8 phần đầu tiên của loạt bài này:

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

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

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:

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

Cập nhật dữ liệu dùng Stored Procedure (LINQ to SQL phần 7)

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à 6 phần đầu tiên của loạt bài này:

Trong phần 6 tôi đã nói tới cách chúng ta có thể dùng các Stored Procedure (SPROC) và các hàm do người dùng định nghĩa (UDF) để truy vấn và lấy dữ liệu về dùng mô hình dữ liệu  LINQ to SQL. Trong viết này, tôi sẽ nói về cách dùng các thủ tục này để cập nhật, thêm hoặc xóa dữ liệu.

Continue reading “Cập nhật dữ liệu dùng Stored Procedure (LINQ to SQL phần 7)”

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

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.

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

LINQ tip #4: Dùng WHERE

Khi xây dựng các form tìm kiếm với SQL, chúng ta vẫn thường phải xây dựng một chuỗi SQL với nhiều điều kiện trong WHERE, theo kiểu như:

string sql = "select * from Customers";
string where = "";
if (txtCustomerName.Text != "")
    where += String.Format("CustomerName = {0}", txtCustomerName.Text);
if (where != "")
    sql += " WHERE " + where;

MyDataGrid.DataSource = ... <kết quả trả về bởi câu truy vấn>

Trong LINQ, nếu muốn xây dựng một câu truy vấn LINQ kiểu như vậy, bạn có thể sử dụng câu lệnh Where() kết hợp với biểu thức LAMBDA, với ví dụ trên tôi có thể viết như sau:

DataClasses1DataContext dc = new DataClasses1DataContext();
var q = from p in dc.Products select p;
if (txtCustomerName.Text != "")
    q = q.Where(p => p.Name != txtCustomerName.Text);
MyDataGrid.DataSource = q;

Lấy dữ liệu dùng Stored Procedure (LINQ to SQL phần 6)

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à 5 phần đầu tiên của loạt bài này:

Trong các bài viết đó, tôi đã trình bài cách mà các bạn có thể dùng để lập trình lấy dữ liệu về từ CSDL.

Trong bài viết hôm nay, tôi sẽ cho thấy cách chúng ta có thể dùng các stored procedure (SPROCs) và các hàm do người dùng định nghĩa (UDFs) với mô hình dữ liệu LINQ to SQL. Bài viết này sẽ tập trung chủ yếu vào cách dùng SPROCs để truy vấn và lấy dữ liệu về từ CSDL. Trong bài viết kế tiếp, tôi sẽ hiển thị cách bạn có thể dùng các SPROCs để cập nhật, thêm, xóa dữ liệu từ CSDL.
Continue reading “Lấy dữ liệu dùng Stored Procedure (LINQ to SQL phần 6)”