Sử Dụng DataView để Filter Dữ Liệu Từ DataTable C - Lập Trình .NET

Trang

  • C#
  • ASP.NET
  • HTML
  • Javascript
  • Angular
  • MS SQL Server
  • Data Access
  • Azure
  • Must Have Tools
  • Interview Questions

Thứ Tư, 25 tháng 7, 2012

Sử dụng DataView để filter dữ liệu từ DataTable C#

Khi chúng ta được cung cấp 1 DataTable chứa dữ liệu nhưng chỉ cần lấy ra 1 số dòng thỏa điều kiện nào đó thôi. Cách truyền thống vấn là duyệt từng dòng rồi so sánh giá trị nếu phù hợp thì lấy, không phù hợp thì bỏ qua. Sử dụng DataView để lấy dữ liệu theo điều kiện nào đó 1 cách nhanh chóng. Demo: Tạo 1 DataTable chứa thông tin tên và tuổi của một số người:
  1. DataTable table = new DataTable("table");
  2. table.Columns.Add(new DataColumn("Name", typeof(string)));
  3. table.Columns.Add(new DataColumn("Age", typeof(int)));
  4. for (int i = 0; i < 5; i++)
  5. {
  6. DataRow NewRow = table.NewRow();
  7. NewRow["Name"] = "Nguyễn Văn " + i;
  8. NewRow["Age"] = i;
  9. table.Rows.Add(NewRow);
  10. }
Bây giờ nếu chỉ muốn lấy những người có tuổi lớn hơn 2:
  1. // new 1 DataView
  2. DataView dataView = new DataView(table);
  3. // chỉ lấy những người có tuổi lớn hơn 2
  4. dataView.RowFilter = "Age > 2";
Vậy là Ok, lúc này DataView chỉ chứa những dòng có giá trị thỏa điều kiện filter. Có thể dùng DataView này để đưa vào DataGridView. Sử dụng 2 hàm sau để test kết quả:
  1. private static void PrintTable(DataTable table)
  2. {
  3. for (int i = 0; i < table.Rows.Count; i++)
  4. {
  5. Console.WriteLine("\t" + table.Rows[i]["Name"] +": "+ table.Rows[i]["Age"] + " tuổi.");
  6. }
  7. Console.WriteLine();
  8. }
  9. private static void PrintView(DataView view)
  10. {
  11. for (int i = 0; i < view.Count; i++)
  12. {
  13. Console.WriteLine("\t" + view[i]["Name"] + ": " + view[i]["Age"] + " tuổi.");
  14. }
  15. Console.WriteLine();
  16. }
Thực hiện test:
  1. DataTable table = new DataTable("table");
  2. table.Columns.Add(new DataColumn("Name", typeof(string)));
  3. table.Columns.Add(new DataColumn("Age", typeof(int)));
  4. for (int i = 0; i < 5; i++)
  5. {
  6. DataRow NewRow = table.NewRow();
  7. NewRow["Name"] = "Nguyễn Văn " + i;
  8. NewRow["Age"] = i;
  9. table.Rows.Add(NewRow);
  10. }
  11. // new 1 DataView
  12. DataView dataView = new DataView(table);
  13. // chỉ lấy những người có tuổi lớn hơn 2
  14. dataView.RowFilter = "Age > 2";
  15. PrintTable(table);
  16. PrintView(dataView);
  17. Console.ReadLine();
Kết quả sau khi filter chỉ còn Nguyễn Văn 3 và Nguyễn Văn 4:

Không có nhận xét nào :

Đăng nhận xét

Bài đăng Mới hơn Bài đăng Cũ hơn Trang chủ Đăng ký: Đăng Nhận xét ( Atom )

Tìm kiếm Blog này

GitHubs

Star EntityFrameworkCore.SqlServer.SimpleBulks Star Practical.CleanArchitecture

References

dotnet - YouTube ASP.NET MSDN – Microsoft Developer Network Microsoft Docs .NET Blog Azure SQL Dev Blog Azure Cosmos DB Blog Microsoft Entra Identity Platform Visual Studio Blog Semantic Kernel Azure DevOps W3Schools Online Web Tutorials TIOBE Index DB-Engines Ranking Azure Updates Azure Blog

Nhãn

  • .NET Framework ( 4 )
  • 7-Zip ( 1 )
  • ASP.NET ( 15 )
  • ASP.NET Controls ( 1 )
  • ASP.NET Core ( 1 )
  • ASP.NET MVC ( 3 )
  • AsymmetricAlgorithm ( 1 )
  • Azure ( 2 )
  • Azure Active Directory ( 1 )
  • Babel ( 1 )
  • Bower ( 1 )
  • C# ( 59 )
  • Compression ( 1 )
  • Config ( 5 )
  • Cryptography ( 8 )
  • CSS ( 1 )
  • CSS Specificity ( 1 )
  • Data Access ( 1 )
  • DataReader ( 1 )
  • DateTime ( 4 )
  • delegate ( 1 )
  • Dictionary ( 1 )
  • Docker ( 1 )
  • Docker for Windows ( 1 )
  • EF Core ( 1 )
  • Entity Framework ( 6 )
  • Entity Framework Tools for Visual Studio ( 1 )
  • EPPlus ( 3 )
  • Excel ( 4 )
  • Execution Plan ( 2 )
  • FTP ( 1 )
  • Gulp ( 4 )
  • HashAlgorithm ( 2 )
  • HashSet ( 1 )
  • HMAC ( 1 )
  • HTML ( 5 )
  • IIS ( 3 )
  • javascript ( 5 )
  • JS Transpiler ( 1 )
  • Katana ( 1 )
  • KeyedHashAlgorithm ( 1 )
  • LINQ ( 3 )
  • LINQ To XML ( 1 )
  • Linux ( 1 )
  • log4net ( 1 )
  • Logging ( 1 )
  • Maintenance Plan ( 1 )
  • Multi Thread ( 1 )
  • MVC ( 1 )
  • MVP ( 1 )
  • NCalc ( 1 )
  • Network ( 4 )
  • NoSQL ( 1 )
  • Notepad++ ( 1 )
  • NPM ( 1 )
  • Nuget ( 1 )
  • OAuth ( 1 )
  • OctoPack ( 1 )
  • Office ( 3 )
  • Operator ( 2 )
  • OS ( 1 )
  • OWIN ( 2 )
  • Performance ( 2 )
  • Powershell ( 2 )
  • Print ( 1 )
  • RabbitMQ ( 5 )
  • Regex ( 4 )
  • ReportViewer ( 1 )
  • SMTP ( 1 )
  • Socket ( 1 )
  • SQL server ( 57 )
  • SQL Tutorial ( 4 )
  • SqlBulkCopy ( 1 )
  • SSIS ( 1 )
  • SSRS ( 1 )
  • SVN ( 2 )
  • SymmetricAlgorithm ( 1 )
  • T-SQL ( 18 )
  • TcpClient ( 1 )
  • TransactionScope ( 1 )
  • Unit Test ( 1 )
  • Visual Studio ( 2 )
  • WCF ( 1 )
  • Web API 2 ( 1 )
  • Webbrowser ( 1 )
  • Webbrowser Control ( 1 )
  • Webservice ( 1 )
  • What's new ( 1 )
  • Windows ( 3 )
  • Windows Form ( 2 )
  • Windows Server ( 1 )

Lưu trữ Blog

  • ▼  2012 ( 60 )
    • ▼  tháng 7 ( 22 )
      • Sử dụng LINQ để truy vấn dữ liệu trong 1 DataTable
      • Cấu hình thông báo lỗi 404 not found cho website t...
      • Restore database vào một vị trí mới và đặt lại tên...
      • Sử dụng Clipboard bằng javascript
      • Sử dụng Clipboard trong .NET
      • Gửi Email bằng MS SQL Server
      • Dấu hỏi ? ngay sau kiểu dữ liệu có ý nghĩa gì tron...
      • Lấy thông tin các column và table từ INFORMATION_S...
      • Cách sử dụng ( đọc, thêm, sửa, xóa ) appSettings t...
      • Sử dụng DataView để filter dữ liệu từ DataTable C#
      • Kiểm tra địa chỉ Ip V4 hợp lệ
      • Lấy danh sách tất cả các table, các column trong t...
      • Xem danh sách các object trong Database SQL Server
      • Toán tử ?? trong C#
      • Tìm kiếm trong danh sách hoặc mảng sử dụng LINQ query
      • Toán tử ? : trong C#
      • Sử dụng phương thức TryParse khi convert object
      • Ghi thêm dữ liệu vào cuối file đã tồn tại
      • Ký tự xuống dòng ( new line character ) trong MS SQL
      • Tổng hợp các hàm xử lý chuỗi trong MS SQL Server
      • Cộng chuỗi với số trong MS Sql ?
      • Tự động điền dữ liệu vào texbox và click vào butto...

Giới thiệu về tôi

Ảnh của Tôi Phong Nguyen Xem hồ sơ hoàn chỉnh của tôi

.NET

Đang tải...

Azure SQL Devs’ Corner

Đang tải...

Azure Cosmos DB Blog

Đang tải...

Microsoft Entra Identity Platform

Đang tải...

Visual Studio Blog

Đang tải...

Semantic Kernel

Đang tải...

Andrew Lock | .NET Escapades

Đang tải...

Meziantou's blog

Đang tải...

Từ khóa » Duyệt Từng Dòng Trong Datatable C#