text:
Lốc lạnh Lexus – Chất lượng trên từng sản phẩm
- Gia Nguyễn cam kết các sản phẩm Lốc lạnh ô tô Lexus được nhập khẩu chính hãng
- Chế độ bảo hành, bảo trì tốt, đảm bảo chất lượng tốt nhất trong quá trình sử dụng
- Cung cấp sản phẩm Lốc điều hòa ô tô Lexus với giá cả phải chăng nhất thị trường
Quý khách có nhu cầu mua Lốc lạnh Lexus vui lòng liên hệ:
Trung tâm phụ tùng điện lạnh – ô tô Gia Nguyễn.
Email: phutungdienlanh@gmail.com
Website: http://phutungdienlanh.vn
Hot line: Mr.Tuyền – 0987 667 665
Địa chỉ: 507 Kim Ngưu, Hai Bà Trưng, Hà Nội.
Gia Nguyễn hân hạnh được hợp tác với quý khách!
Xem thêm các sản phẩm lốc điều hòa chính hãng khác: http://phutungdienlanh.vn/danh-muc/phu-tung-dien-lanh/loc-dieu-hoa/

markdown:
**Lốc lạnh Lexus** – Chất lượng trên từng sản phẩm
- Gia Nguyễn cam kết các sản phẩm Lốc lạnh ô tô Lexus được nhập khẩu chính hãng
- Chế độ bảo hành, bảo trì tốt, đảm bảo chất lượng tốt nhất trong quá trình sử dụng
- Cung cấp sản phẩm
[Lốc điều hòa ô tô](http://phutungdienlanh.vn/tim-hieu-ve-loc-dieu-hoa-o-to/)Lexus với giá cả phải chăng nhất thị trường
## Quý khách có nhu cầu mua Lốc lạnh Lexus vui lòng liên hệ:
Trung tâm phụ tùng điện lạnh – ô tô Gia Nguyễn.
Email: phutungdienlanh@gmail.com
Website: http://phutungdienlanh.vn
Hot line: Mr.Tuyền – 0987 667 665
Địa chỉ: 507 Kim Ngưu, Hai Bà Trưng, Hà Nội.
Gia Nguyễn hân hạnh được hợp tác với quý khách!
Xem thêm các sản phẩm lốc điều hòa chính hãng khác:
[http://phutungdienlanh.vn/danh-muc/phu-tung-dien-lanh/loc-dieu-hoa/](http://phutungdienlanh.vn/danh-muc/phu-tung-dien-lanh/loc-dieu-hoa/)


text:
60 Trần Hưng Đạo, Khu Phố 7, Thị trấn Dương Đông, Phú Quốc , Kiên Giang (Xem bản đồ)
tổ 7 ấp suối Lớn, xã Dương Tơ, Huyện Phú Quốc, Tỉnh Kiên Giang (Xem bản đồ)
118/12 Trần Hưng Đạo, Phường 7, Dương Đông, Phú Quốc , Kiên Giang (Xem bản đồ)
Trần Hưng Đạo, tổ 4, Ấp Cửa Lấp, Xã Dương Tơ, Phú Quốc , Kiên Giang (Xem bản đồ)
88/5 đường Trân Hưng Đạo, Phường 7, Phú Quốc , Kiên Giang (Xem bản đồ)
33 Hùng Vương, Khu phố 5, Thị Trấn Dương Đông, Phú Quốc , Kiên Giang (Xem bản đồ)
Số 34, Đường 30/4, Khu Phố 1, TT. Dương Đông, Phú Quốc , Kiên Giang (Xem bản đồ)
SS03-TM1, Khu tổ hợp du lịch Sonasea& Resorts, ấp Bãi Trường, Xã Dương Tơ, Huyện Phú Quốc, Tỉnh Kiên Giang, Việt Nam, Phú Quốc , Kiên Giang (Xem bản đồ)
Trần Hưng Đạo, Dương Tơ, Phú Quốc, Kiên Giang., Phú Quốc , Kiên Giang (Xem bản đồ)
77 Trần Hưng Đạo, khu phố 7 Dương Đông, Phú Quốc, Việt Nam (Xem bản đồ)
62 Trần Hưng Đạo, Thị Trấn Dương Đông, Phú Quốc , Kiên Giang (Xem bản đồ)
Trần Hưng Đạo, Dương Đông, Phú Quốc , Kiên Giang (Xem bản đồ)
68 Trần Hưng Đạo, Thị Trấn Dương Đông, Phú Quốc , Kiên Giang (Xem bản đồ)
88/2 Trần Hưng Đạo, KP7, Thị Trấn Dương Đông, Phú Quốc , Kiên Giang (Xem bản đồ)
82 Trần Hưng Đạo, Thị Trấn Dương Đông, Phú Quốc , Kiên Giang (Xem bản đồ)
Tổ 7, Ấp Bến Tràm, Xã Cửa Dương (Trên đường đi Đá Bàn), Phú Quốc , Kiên Giang (Xem bản đồ)
hẻm 8, Khu Phố 7, 8 trần hưng đạo Thị Trấn Dương Đông, Phú Quốc , Kiên Giang (Xem bản đồ)
Cửa Lấp, Dương Tơ, Phú Quốc , Kiên Giang (Xem bản đồ)

markdown:
[
60 Trần Hưng Đạo, Khu Phố 7, Thị trấn Dương Đông, Phú Quốc , Kiên Giang
(Xem bản đồ)
](javascript:;)
[
tổ 7 ấp suối Lớn, xã Dương Tơ, Huyện Phú Quốc, Tỉnh Kiên Giang
(Xem bản đồ)
](javascript:;)
[
118/12 Trần Hưng Đạo, Phường 7, Dương Đông, Phú Quốc , Kiên Giang
(Xem bản đồ)
](javascript:;)
[
Trần Hưng Đạo, tổ 4, Ấp Cửa Lấp, Xã Dương Tơ, Phú Quốc , Kiên Giang
(Xem bản đồ)
](javascript:;)
[
88/5 đường Trân Hưng Đạo, Phường 7, Phú Quốc , Kiên Giang
(Xem bản đồ)
](javascript:;)
[
33 Hùng Vương, Khu phố 5, Thị Trấn Dương Đông, Phú Quốc , Kiên Giang
(Xem bản đồ)
](javascript:;)
[
Số 34, Đường 30/4, Khu Phố 1, TT. Dương Đông, Phú Quốc , Kiên Giang
(Xem bản đồ)
](javascript:;)
[
SS03-TM1, Khu tổ hợp du lịch Sonasea& Resorts, ấp Bãi Trường, Xã Dương Tơ, Huyện Phú Quốc, Tỉnh Kiên Giang, Việt Nam, Phú Quốc , Kiên Giang
(Xem bản đồ)
](javascript:;)
[
Trần Hưng Đạo, Dương Tơ, Phú Quốc, Kiên Giang., Phú Quốc , Kiên Giang
(Xem bản đồ)
](javascript:;)
[
77 Trần Hưng Đạo, khu phố 7 Dương Đông, Phú Quốc, Việt Nam
(Xem bản đồ)
](javascript:;)
[
62 Trần Hưng Đạo, Thị Trấn Dương Đông, Phú Quốc , Kiên Giang
(Xem bản đồ)
](javascript:;)
[
Trần Hưng Đạo, Dương Đông, Phú Quốc , Kiên Giang
(Xem bản đồ)
](javascript:;)
[
68 Trần Hưng Đạo, Thị Trấn Dương Đông, Phú Quốc , Kiên Giang
(Xem bản đồ)
](javascript:;)
[
88/2 Trần Hưng Đạo, KP7, Thị Trấn Dương Đông, Phú Quốc , Kiên Giang
(Xem bản đồ)
](javascript:;)
[
82 Trần Hưng Đạo, Thị Trấn Dương Đông, Phú Quốc , Kiên Giang
(Xem bản đồ)
](javascript:;)
[
Tổ 7, Ấp Bến Tràm, Xã Cửa Dương (Trên đường đi Đá Bàn), Phú Quốc , Kiên Giang
(Xem bản đồ)
](javascript:;)
[
hẻm 8, Khu Phố 7, 8 trần hưng đạo Thị Trấn Dương Đông, Phú Quốc , Kiên Giang
(Xem bản đồ)
](javascript:;)
[
Cửa Lấp, Dương Tơ, Phú Quốc , Kiên Giang
(Xem bản đồ)
](javascript:;)

WARC-Type: response

Content-Type: application/http; msgtype=response

WARC-Identified-Payload-Type: text/html

Server: Apache/2.2.15 (CentOS)

Connection: Close

Pragma: no-cache

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0

Vary: Accept-Encoding

Content-Type: text/html; charset=UTF-8


text:
CHƯƠNG TRÌNH KHUYẾN MÃI TRI ÂN PHỤ NỮ VIỆT
Nhân dịp Ngày Phụ Nữ Việt 20/10/2014 Thời Trang Hải Nam có chương trình khuyến mãi hấp dẫn giảm giá 50% cho tất cả sản phẩm.Chương trình diễn ra vào 4 ngày 17/10/2014 - 20/10/2014.
Đặc biệt: quý khách có thể đăng kí thành viên thì sẽ được giảm giá 30% vào thứ sáu hàng tuần.
Khi đến với Shop Thời Trang Hải Nam mua hàng, quý khách sẽ được tư vấn chọn những mẫu đầm thời trang vừa ý nhất, phù hợp vóc dáng. Mẫu mã đầm đa dạng phù hợp nhiều đối tượng và độ tuổi khác nhau. Shop Thời Trang Hải Nam còn may đồng phục công sở nữ với giá ưu đãi. Rất mong nhận sự ủng hộ khách hàng!
THỜI TRANG HẢI NAM - NÂNG TẦM PHÁI ĐẸP
132 Cao Thắng, Phường 04, Quận 03, Tp.HCM
Email : thoitranghainam@gmail.com
website: www.damthoitrang.info
Mobile: 0907.189.284

markdown:
**CHƯƠNG TRÌNH KHUYẾN MÃI TRI ÂN PHỤ NỮ VIỆT**
Nhân dịp Ngày Phụ Nữ Việt 20/10/2014
**Thời Trang Hải Nam** có chương trình khuyến mãi hấp dẫn **giảm giá 50%** cho tất cả sản phẩm.Chương trình diễn ra vào 4 ngày **17/10/2014 - 20/10/2014**. **Đặc biệt**: quý khách có thể đăng kí thành viên thì sẽ được [giảm giá 30%](http://damthoitrang.info/content/index/258/khuye-n-ma-i.cnv)
Khi đến với Shop Thời Trang Hải Nam mua hàng, quý khách sẽ được tư vấn chọn những mẫu
[ vừa ý nhất, phù hợp vóc dáng. Mẫu mã đầm đa dạng phù hợp nhiều đối tượng và độ tuổi khác nhau. Shop Thời Trang Hải Nam còn may đầm thời trang](http://damthoitrang.info/) [với giá ưu đãi. Rất mong nhận sự ủng hộ khách hàng!](http://damthoitrang.info/content/index/181/do-ng-phu-c.cnv) **đồng phục công sở nữ** **THỜI TRANG HẢI NAM - NÂNG TẦM PHÁI ĐẸP**
132 Cao Thắng, Phường 04, Quận 03, Tp.HCM
Email :
[thoitranghainam@gmail.com](mailto:thoitranghainam@gmail.com)
website:
[www.damthoitrang.info](http://www.damthoitrang.info)
Mobile:
**0907.189.284**

Connection: close

Vary: Accept-Encoding,User-Agent

Content-Type: text/html; charset=utf-8


text:
OXFORD PRACTICE GRAMMAR 11
Chia sẻ: Nguyễn Hoàng Vy | Ngày: | Loại File: PDF | Số trang:5
90
lượt xem 29
download
lượt xem 29
download
OXFORD PRACTICE GRAMMAR 11
Mô tả tài liệu
Download Vui lòng tải xuống để xem tài liệu đầy đủ
OXFORD PRACTICE GRAMMAR- 11 sau đây là giáo trình lý thuyết tiếng anh và bài tập áp dụng từ cơ bản đến nâng cao , nhằm giúp các bạn có thể tự mình ôn tập và củng cố thêm về nền tảng kiến thức môn Anh văn , tự tin đạt kết quả tốt trong kỳ thi ngoại ngữ
Chủ đề:
Bình luận(0) Đăng nhập để gửi bình luận!
CÓ THỂ BẠN MUỐN DOWNLOAD

markdown:
# OXFORD PRACTICE GRAMMAR 11
Chia sẻ: Nguyễn Hoàng Vy | Ngày: | Loại File: PDF | Số trang:5
90
lượt xem 29
download
lượt xem 29
download
![](http://image1.tailieu.vn/document/thumbnail/2010/20100827/brightenmoon/80x100/oxford_practice_grammar_11_3467.jpg)
##
OXFORD PRACTICE GRAMMAR 11
Mô tả tài liệu
[Vui lòng tải xuống để xem tài liệu đầy đủ](javascript:void(0);)
Download
![](http://static1.tailieu.vn/b2013az/templates/version1/default/images/down16x21.png)
OXFORD PRACTICE GRAMMAR- 11 sau đây là giáo trình lý thuyết tiếng anh và bài tập áp dụng từ cơ bản đến nâng cao , nhằm giúp các bạn có thể tự mình ôn tập và củng cố thêm về nền tảng kiến thức môn Anh văn , tự tin đạt kết quả tốt trong kỳ thi ngoại ngữ
Chủ đề:
Bình luận(0)
[Đăng nhập để gửi bình luận!](javascript:void(0);)
CÓ THỂ BẠN MUỐN DOWNLOAD

WARC-Identified-Payload-Type: application/xhtml+xml

Server: Apache/2.2.31 (CentOS)

Set-Cookie: TLDEVNamespace=q6djebpsqpcmm20bsa3lg2c2c6; path=/; domain=.tailieu.vn; HttpOnly


text:
Chủ nhật, 23/07/2017
Trang chủ
Giới thiệu
Giảm NL/CO2
Tăng trưởng xanh
CSDL Quốc gia
Công trình trình diễn
Đào tạo
Mô phỏng NL
Tác động
Liên hệ
Mục tiêu chính
Nhóm dự án
Tin tức
Quy chuẩn xây dựng
Công trình hiệu năng cao
Công trình tiết kiệm năng lượng
Công trình xanh
Công trình thích ứng BĐKH
Hỗ trợ xây dựng chính sách
Kế hoạch tăng trưởng xanh
Hệ thống đánh giá CTX
Danh sách công trình
CSDL QG năng lượng trong công trình
Hệ thống dữ liệu trực tuyến
CSDL về hiệu năng sử dụng năng lượng ở Việt Nam
ETC Building
Tòa nhà 33 Trúc Bạch Hà Nội
Tòa nhà Capital Place
Ủy ban chứng khoán Nhà nước
Trụ sở VNCC
Kế hoạch
Đối tác
Các khóa đào tạo
Tài liệu đào tạo
Giới thiệu
Công trình trình diễn
Các loại công trình trình diễn
Tìm kiếm công trình
Dữ liệu khí hậu
Câu chuyện thành công
Báo cáo
Kết quả mô phỏng
Tin về chúng tôi
TÁC ĐỘNG
BÁO CÁO
Video clip: Hoạt động và thành quả của Chương trình Năng lượng Sạch USAID Việt Nam
Cập nhật lúc 14:45 05/07/2017
Do tốc độ công nghiệp hóa và đô thị hóa nhanh nên nhu cầu sử dụng năng lượng trong các công trình ở Việt Nam cũng tăng lên nhanh chóng.
Chương trình Năng lượng Sạch USAID Việt Nam đã phối hợp với Bộ Xây dựng, Sở Xây dựng các tỉnh, các trường đại học, viện nghiên cứu, khu vực tư nhân và các hiệp hội ngành nghề tập trung giúp giảm phát thải khí nhà kính thông qua thúc đẩy các biện pháp sử dụng năng lượng hiệu quả trong ngành xây dựng, đồng thời tạo cơ sở cho các hệ thống năng lượng phát thải thấp tại Việt Nam.
Xin mời xem video để biết thêm hoạt động và thành quả của Chương trình:
https://youtu.be/XuwRK67_kdA
Trang in
Gửi bạn bè
Chia sẻ trên facebook
Chia sẻ trên twitter
Thảo luận
Xem thảo luận
Thông tin khác:
Chương Trình Năng Lượng Sạch Việt Nam: Thúc Đẩy Hiệu Quả Năng Lượng trong Ngành Xây Dựng (Tờ giới thiệu)
(19/01/2017)
Đánh giá Tổng quan 7 hệ thống cấp chứng nhận Công trình xanh
(03/06/2015)
© 2015 - Chương trình năng lượng sạch USAID Việt Nam
Địa chỉ: 193C3 - Bà Triệu - Hai Bà Trưng - Hà Nội.
Tel: (+84) (04) 3974 3696 - Email: vcep@winrock.org - Website: www.vcep.vn
Lượt truy cập: 13164
Thiết kế web: OnIP™

Cache-Control: private

X-Powered-By-Plesk: PleskWin


text:
Color mixing the van wyk way - Phần 9
Chia sẻ: Nguyen Hoang Phuong Uyen | Ngày: | Loại File: PDF | Số trang:14
75
lượt xem 36
download
lượt xem 36
download
Color mixing the van wyk way - Phần 9
Mô tả tài liệu
Download Vui lòng tải xuống để xem tài liệu đầy đủ
Tham khảo tài liệu 'color mixing the van wyk way - phần 9', văn hoá - nghệ thuật, điêu khắc - hội họa phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Chủ đề:
Bình luận(0) Đăng nhập để gửi bình luận!
CÓ THỂ BẠN MUỐN DOWNLOAD

markdown:
# Color mixing the van wyk way - Phần 9
Chia sẻ: Nguyen Hoang Phuong Uyen | Ngày: | Loại File: PDF | Số trang:14
75
lượt xem 36
download
lượt xem 36
download
![](http://image1.tailieu.vn/document/thumbnail/2010/20100918/lamborghini1209/80x100/color_mixing_the_van_wyk_way_9_5108.jpg)
##
Color mixing the van wyk way - Phần 9
Mô tả tài liệu
[Vui lòng tải xuống để xem tài liệu đầy đủ](javascript:void(0);)
Download
![](http://static1.tailieu.vn/b2013az/templates/version1/default/images/down16x21.png)
Tham khảo tài liệu 'color mixing the van wyk way - phần 9', văn hoá - nghệ thuật, điêu khắc - hội họa phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Chủ đề:
Bình luận(0)
[Đăng nhập để gửi bình luận!](javascript:void(0);)
CÓ THỂ BẠN MUỐN DOWNLOAD

Set-Cookie: TLDEVNamespace=9d4ov81vhofg4k683l06osmvo0; path=/; domain=.tailieu.vn; HttpOnly


text:
Đang bị lật ngửa trong hang
Có hai con rùa đi vào trong hang, một lúc sau chỉ có mỗi con rùa đực đi ra ngoài, thấy thế một con cá đang bơi dưới nước liền hỏi: - Anh rùa ơi! Chị rùa đi đâu mà không ra cùng anh? Rùa đực trả lời: - Đang bị lật ngửa trong hang làm sao mà ra cùng với tôi được. - ????
No comments:
Post a Comment

markdown:
###
[Đang bị lật ngửa trong hang](http://galavui.luyenthianhvan.org/2008/06/ang-b-lt-nga-trong-hang.html)
Có hai con rùa đi vào trong hang, một lúc sau chỉ có mỗi con rùa đực đi ra ngoài, thấy thế một con cá đang bơi dưới nước liền hỏi: - Anh rùa ơi! Chị rùa đi đâu mà không ra cùng anh? Rùa đực trả lời: - Đang bị lật ngửa trong hang làm sao mà ra cùng với tôi được. - ????
## No comments:
Post a Comment

Server: GSE

X-Content-Type-Options: nosniff

Cache-Control: private, max-age=0

X-XSS-Protection: 1; mode=block


text:
Cách Xem Dữ liệu Trong .NET part 3
Chia sẻ: Dqdsadasd Qwdasdsad | Ngày: | Loại File: PDF | Số trang:7
lượt xem 7
download
Cách Xem Dữ liệu Trong .NET part 3
Gắn kết dữ liệu Ở ví dụ trứơc đã xem xét tất cả control DataGrid, đó chỉ là một phần trong thời gian chạy.NET có thể dùng để hiển thị dữ liệu. Một tiến trình gắn kết một control và một nguồn dữ liệu được gọi là data binding
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Cách Xem Dữ liệu Trong .NET part 3
- Gắn kết dữ liệu Ở ví dụ trứơc đã xem xét tất cả control DataGrid, đó chỉ là một phần trong thời gian chạy.NET có thể dùng để hiển thị dữ liệu. Một tiến trình gắn kết một control và một nguồn dữ liệu được gọi là data binding. Nếu bạn có những kinh nghiệm với các ứngdụng lập trình Windows trong MFC. Có lúc nào đó bạn đã sử dụng chức năng Dialog Data Exchange (DDX)để móc các biến thành viên của một lớp với bộ điều khiển Win32. Bạn sẽ vui sướng khi biết rằng bạn có thể giấu cửa trên DDX, như nó dễ dàng hơn để móc dữ liệu vào bộ điều khiển trong .NET. Bạn có thể gắn kết dữ liệu không chỉ đến các bộ điều khiển Window mà còn với các trang Web ASP.NET. Gắn kết đơn giản Một control hỗ trợ việc gắn kết đơn hiển thị chỉ những giá trị đơn tại một lúc, như là một hộp văn bản hay một nút chọn. Ví dụ sau chỉ cách gắn kết một cột từ một DataTable đến một hộp văn bản. DataSet ds = CreateDataSet(); textBox1.DataBindings.Add("Text", ds , "Products.ProductName"); Sau khi lấy lại vài dữ liệu từ bảng Products và lưu trữ trong một DataSet được trả về từ phương thức CreateDataSet() như trên, dòng thứ hai gắn kết thuộc tính Text của control đến cột Products.ProductName. Nếu bạn viết đoạn mã này từ cơ sở dữ liệu Northwind, bạn sẽ thấy màn hình như bên dưới đây: Hộp văn bản hiển thị vài thứ trong cơ sở dữ liệu. Để kiểm tra rằng nó là cột hay giá trị, bạn sẽ sử dụng công cụ SQL Server Query Analyzer để kiểm tra nội dung của bảng Procucttool.
- Đối tượng gắn kết dữ liệu Sơ đồ sau chỉ một thừa kế lớp cho các đối tượng được sử dụng trong gắn kết dữ liệu. Trong phần này ta bàn luận về BindingContext, CurrencyManager, và PropertyManager các lớp của System.Windows.Forms, và trình cách chúng tương tác khi dữ liệu giới hạn trong một hay nhiều control trên một form. Các đối tượng chuyển màu được dùng trong gắn kết. Trong ví dụ trước, chúng ta sử dụng thuộc tính DataBinding của control TextBox để gắn kết một cột từ một DataSet đến thuộc tính Text của bộ điều khiển. Thuộc tính DataBindings là một thể hiện của ControlBindingsCollection : textBox1.DataBindings.Add("Text", ds, "Products.ProductName"); Dòng này thêm một đối tượng gắn kết từ một đối tượng Binding đến ControlBindingsCollection Binding Context
- Mọi Windows form có một thuộc tính BindingContext. Form được thừa hưởng từ Control . Một đối tượng BindingContext có một tập thể hiện BindingManagerBase. Những thể hiện này được tạo và thêm vào đối tượng quản lý gắn kết khi một control bị giới hạn: BindingContext sẽ chứa vài nguồn dữ liệu, được gói trong một CurrencyManager hay một PropertyManager. Sự quyết định lớp nào được dùng dựa vào chính nguồn dữ liệu. Nếu nguồn dữ liệu chứa một dãy item như là DataTable, DataView, hay bất kỳ đối tượng khác thực thi giao diện IList thì một CurrencyManager sẽ được dùng, như nó có thể duy trì vị trí hiện tại bên trong nguồn dữ liệu. Nếu nguồn dữ liệu chỉ trả về một giá trị đơn thì một PropertyManager sẽ được lưu trữ trong BindingContext. Một CurrencyManager hay PropertyManager chỉ được tạo một lần cho một nguồn dữ liệu. Nếu bạn gắn kết hai hộp văn bản với một hàng từ một DataTable thì chỉ một currencyManager sẽ được tạo bên trong binding context. Mọi control thêm vào một form được gắn kết với bộ quản lý gắn kết của form, vì thế tất cả control chia sẽ cùng một thể hiện. Khi một control được tạo thuộc tính BindingContext của nó là null. Khi control được thêm bộ Control của form thì nó sẽ cài BindingContext đến bộ đó của form. Để gắn kết một control với một form, bạn cần thêm một thực thể vào thuộc tính DataBinding của nó. Đoạn mã bên dưới tạo một sự gắn kết mới: textBox1.DataBindings.Add("Text", ds, "Products.ProductName"); Phương thức Add() của ControlBindingsCollection tạo một thể hiện mới của đối tượng Binding từ những thông số của phương thưc này và thêm chúng vào bộ những việc gắn kết
- Hình trên trình bày những gì đang hoạt động khi bạn thêm một Binding đến một Control. Binding gắn kết control với một nguồn dữ liệu được duy trì bên trong BindingContext của Form. Sự thay đổi bên trong nguồn dữ liệu được phản ánh vào control như là những thay đổi trong control đó. Binding Lớp này gắn kết một thuộc tính của control với một thành viên của nguồn dữ liệu. Khi những thành viên này thay đổi thì những thuộc tính của control được cập nhật để phản ánh sự thay đổi này và ngược lại Bindings có thể cài đặt từ bất kỳ cột nào đến bất kỳ thuộc tính nào của control, vì thế bạn sẽ gắn kết một cột với một hộp văn bản và có thể gắn kết cột khác với màu hộp văn bản.. Bạn có thể gắn kết các thuôc tính của một control đến các nguồn dữ liệu khác nhau . CurrencyManager và PropertyManager Khi một đối tượng Binding được tạo, một đối tượng CurrencyManager hay PropertyManager sẽ được tạo nếu đó là lần đầu tiên dữ liệu đó từ nguồn bị giới hạn. Mục đích của lớp này là định nghĩa vị trí của mẫu tin hiện hành trong nguồn dữ liệu và kết hợp tất cả dãy bindings khi mẫu tin hiện hành này bị thay đổi.
- Ví dụ sau sẽ hiển thị hai trường từ bảng Product và bao gồm một cách để di chuyển giữa các mẫu tin bằng các phương tiện của một control TrackBar. Đoạn mã cho ứng dụng này nằm hoàn toàn trong thư mục 09_ScrollingDataBinding using System; using System.Windows.Forms; using System.Data; using System.Data.SqlClient; public class ScrollingDataBinding : System.Windows.Forms.Form { private Button retrieveButton; private TextBox textName; private TextBox textQuan; private TrackBar trackBar; private DataSet ds; Ứng dụng trên tạo cửa sổ và tất cả control cho cửa sổ đó bên trong một hàm khởi tạo ScrollingDataBinding: public ScrollingDataBinding() { this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(464, 253); this.Text = "09_ScrollingDataBinding"; this.retrieveButton = new Button(); retrieveButton.Location = new System.Drawing.Point(4, 4); retrieveButton.Size = new System.Drawing.Size(75, 23); retrieveButton.TabIndex = 1; retrieveButton.Anchor = AnchorStyles.Top | AnchorStyles.Left; retrieveButton.Text = "Retrieve"; retrieveButton.Click += new System.EventHandler (this.retrieveButton_Click); this.Controls.Add(this.retrieveButton); this.textName = new TextBox();
- textName.Location = new System.Drawing.Point(4, 31); textName.Text = "Please click retrieve..."; textName.TabIndex = 2; textName.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right ; textName.Size = new System.Drawing.Size(456, 20); textName.Enabled = false; this.Controls.Add(this.textName); this.textQuan = new TextBox(); textQuan.Location = new System.Drawing.Point(4, 55); textQuan.Text = ""; textQuan.TabIndex = 3; textQuan.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Top; textQuan.Size = new System.Drawing.Size(456, 20); textQuan.Enabled = false; this.Controls.Add(this.textQuan); this.trackBar = new TrackBar(); trackBar.BeginInit(); trackBar.Dock = DockStyle.Bottom ; trackBar.Location = new System.Drawing.Point(0, 275); trackBar.TabIndex = 4; trackBar.Size = new System.Drawing.Size(504, 42); trackBar.Scroll += new System.EventHandler(this.trackBar_Scroll); trackBar.Enabled = false; this.Controls.Add(this.trackBar); } Khi nút Retrieve được click, sự kiện handler chọn tất cả mẫu tin từ bảng Product và lưu trữ trong Dataset riêng ds: protected void retrieveButton_Click(object sender, System.EventArgs e) { retrieveButton.Enabled = false ; ds = CreateDataSet(); Tiếp theo là hai control văn bản được giới hạn textName.DataBindings.Add("Text" , ds , "Products.ProductName"); textQuan.DataBindings.Add("Text" , ds , "Products.QuantityPerUnit"); trackBar.Minimum = 0 ;
- trackBar.Maximum = this.BindingContext[ds,"Products"].Count – 1; textName.Enabled = true; textQuan.Enabled = true; trackBar.Enabled = true; } Ở đây chúng ta có một mẫu tin cuộn để phản ứng lại với sự di chuyển của TrackBar: protected void trackBar_Scroll(object sender , System.EventArgs e) { this.BindingContext[ds,"Products"].Position = trackBar.Value; } private DataSet CreateDataSet() { string source = "server=(local)\\NetSDK;" + "uid=QSUser;pwd=QSPassword;" + "database=northwind"; string customers = "SELECT * FROM Products"; SqlConnection con = new SqlConnection(source); SqlDataAdapter da = new SqlDataAdapter(customers , con); DataSet ds = new DataSet(); da.Fill(ds , "Products"); return ds; } static void Main() { Application.Run(new ScrollingDataBinding()); } } Khi dữ liệu được khôi phục, vị trí lớn nhất trên track bar được cài là số lượng của mẫu tin. Sau đó, trong phương thức scroll ở trên, chúng ta cài vị trí của BindingContext cho DataTable products đến vị trí của scroll bar thumb. Nó thay đổi mẫu tin hiện hành từ DataTable, vì thế tất cả control giới hạn đến hàng hiện hành.
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Giáo trình cấu trúc dữ liệu và giải thuật_Chương 3: Cấu trúc Stack & Queue
18 p | 583 | 348
-
Bài giảng Cấu trúc dữ liệu & thuật toán: Chương 3 - Nguyễn Đức Nghĩa
0 p | 282 | 151
-
Cơ sở dữ liệu Trong Microsoft .NET Framework phần 1
8 p | 166 | 76
-
Bài giảng Lập trình java cơ bản: Chương 5 - Lê Tân
26 p | 179 | 73
-
Tự học lập trình cơ sở dữ liệu Visual C .NEt part 3
39 p | 128 | 69
-
Cơ sở dữ liệu Trong Microsoft .NET Framework phần 2
8 p | 112 | 47
-
Cơ sở dữ liệu Trong Microsoft .NET Framework phần cuối
8 p | 96 | 45
-
Các chương trình mẫu .NET part 3
91 p | 76 | 40
-
Cơ sở dữ liệu Trong Microsoft .NET Framework phần 4
8 p | 101 | 39
-
Silverlight - Chapter 7 - Làm việc với dữ liệu trong Silverlight
0 p | 163 | 29
-
Cơ sở dữ liệu Trong Microsoft .NET Framework phần 3
9 p | 73 | 27
-
Mô hình kết nối cơ sở dữ liệu ADO.NET
11 p | 90 | 24
-
Cách bind dữ liệu XML
8 p | 97 | 22
-
Cấu trúc dữ liệu và giải thuật - Dương Thành Phết
14 p | 61 | 12
-
Bài giảng Lập trình cơ sở dữ liệu với ADO.Net
29 p | 14 | 6
-
Cách Xem Dữ liệu Trong .NET part 2
16 p | 51 | 5
-
Cách Xem Dữ liệu Trong .NET part 5
1 p | 29 | 3

markdown:
# Cách Xem Dữ liệu Trong .NET part 3
Chia sẻ: Dqdsadasd Qwdasdsad | Ngày: | Loại File: PDF | Số trang:7
lượt xem 7
download
![](http://image.tlvnimg.com/document/thumbnail/2010/20100815/sieukidvn/80x100/cach_xem_du_lieu_trong_net_1__2098.jpg)
##
Cách Xem Dữ liệu Trong .NET part 3
[Vui lòng tải xuống để xem tài liệu đầy đủ](javascript:void(0);)
Download
![](http://static.tlvnimg.com/b2013az/templates/version1/default/images/down16x21.png)
Gắn kết dữ liệu Ở ví dụ trứơc đã xem xét tất cả control DataGrid, đó chỉ là một phần trong thời gian chạy.NET có thể dùng để hiển thị dữ liệu. Một tiến trình gắn kết một control và một nguồn dữ liệu được gọi là data binding
Bình luận(0)
[Đăng nhập để gửi bình luận!](javascript:void(0);)
##
Nội dung Text: Cách Xem Dữ liệu Trong .NET part 3
- Gắn kết dữ liệu Ở ví dụ trứơc đã xem xét tất cả control DataGrid, đó chỉ là một phần trong thời gian chạy.NET có thể dùng để hiển thị dữ liệu. Một tiến trình gắn kết một control và một nguồn dữ liệu được gọi là data binding. Nếu bạn có những kinh nghiệm với các ứngdụng lập trình Windows trong MFC. Có lúc nào đó bạn đã sử dụng chức năng Dialog Data Exchange (DDX)để móc các biến thành viên của một lớp với bộ điều khiển Win32. Bạn sẽ vui sướng khi biết rằng bạn có thể giấu cửa trên DDX, như nó dễ dàng hơn để móc dữ liệu vào bộ điều khiển trong .NET. Bạn có thể gắn kết dữ liệu không chỉ đến các bộ điều khiển Window mà còn với các trang Web ASP.NET. Gắn kết đơn giản Một control hỗ trợ việc gắn kết đơn hiển thị chỉ những giá trị đơn tại một lúc, như là một hộp văn bản hay một nút chọn. Ví dụ sau chỉ cách gắn kết một cột từ một DataTable đến một hộp văn bản. DataSet ds = CreateDataSet(); textBox1.DataBindings.Add("Text", ds , "Products.ProductName"); Sau khi lấy lại vài dữ liệu từ bảng Products và lưu trữ trong một DataSet được trả về từ phương thức CreateDataSet() như trên, dòng thứ hai gắn kết thuộc tính Text của control đến cột Products.ProductName. Nếu bạn viết đoạn mã này từ cơ sở dữ liệu Northwind, bạn sẽ thấy màn hình như bên dưới đây: Hộp văn bản hiển thị vài thứ trong cơ sở dữ liệu. Để kiểm tra rằng nó là cột hay giá trị, bạn sẽ sử dụng công cụ SQL Server Query Analyzer để kiểm tra nội dung của bảng Procucttool.
- Đối tượng gắn kết dữ liệu Sơ đồ sau chỉ một thừa kế lớp cho các đối tượng được sử dụng trong gắn kết dữ liệu. Trong phần này ta bàn luận về BindingContext, CurrencyManager, và PropertyManager các lớp của System.Windows.Forms, và trình cách chúng tương tác khi dữ liệu giới hạn trong một hay nhiều control trên một form. Các đối tượng chuyển màu được dùng trong gắn kết. Trong ví dụ trước, chúng ta sử dụng thuộc tính DataBinding của control TextBox để gắn kết một cột từ một DataSet đến thuộc tính Text của bộ điều khiển. Thuộc tính DataBindings là một thể hiện của ControlBindingsCollection : textBox1.DataBindings.Add("Text", ds, "Products.ProductName"); Dòng này thêm một đối tượng gắn kết từ một đối tượng Binding đến ControlBindingsCollection Binding Context
- Mọi Windows form có một thuộc tính BindingContext. Form được thừa hưởng từ Control . Một đối tượng BindingContext có một tập thể hiện BindingManagerBase. Những thể hiện này được tạo và thêm vào đối tượng quản lý gắn kết khi một control bị giới hạn: BindingContext sẽ chứa vài nguồn dữ liệu, được gói trong một CurrencyManager hay một PropertyManager. Sự quyết định lớp nào được dùng dựa vào chính nguồn dữ liệu. Nếu nguồn dữ liệu chứa một dãy item như là DataTable, DataView, hay bất kỳ đối tượng khác thực thi giao diện IList thì một CurrencyManager sẽ được dùng, như nó có thể duy trì vị trí hiện tại bên trong nguồn dữ liệu. Nếu nguồn dữ liệu chỉ trả về một giá trị đơn thì một PropertyManager sẽ được lưu trữ trong BindingContext. Một CurrencyManager hay PropertyManager chỉ được tạo một lần cho một nguồn dữ liệu. Nếu bạn gắn kết hai hộp văn bản với một hàng từ một DataTable thì chỉ một currencyManager sẽ được tạo bên trong binding context. Mọi control thêm vào một form được gắn kết với bộ quản lý gắn kết của form, vì thế tất cả control chia sẽ cùng một thể hiện. Khi một control được tạo thuộc tính BindingContext của nó là null. Khi control được thêm bộ Control của form thì nó sẽ cài BindingContext đến bộ đó của form. Để gắn kết một control với một form, bạn cần thêm một thực thể vào thuộc tính DataBinding của nó. Đoạn mã bên dưới tạo một sự gắn kết mới: textBox1.DataBindings.Add("Text", ds, "Products.ProductName"); Phương thức Add() của ControlBindingsCollection tạo một thể hiện mới của đối tượng Binding từ những thông số của phương thưc này và thêm chúng vào bộ những việc gắn kết
- Hình trên trình bày những gì đang hoạt động khi bạn thêm một Binding đến một Control. Binding gắn kết control với một nguồn dữ liệu được duy trì bên trong BindingContext của Form. Sự thay đổi bên trong nguồn dữ liệu được phản ánh vào control như là những thay đổi trong control đó. Binding Lớp này gắn kết một thuộc tính của control với một thành viên của nguồn dữ liệu. Khi những thành viên này thay đổi thì những thuộc tính của control được cập nhật để phản ánh sự thay đổi này và ngược lại Bindings có thể cài đặt từ bất kỳ cột nào đến bất kỳ thuộc tính nào của control, vì thế bạn sẽ gắn kết một cột với một hộp văn bản và có thể gắn kết cột khác với màu hộp văn bản.. Bạn có thể gắn kết các thuôc tính của một control đến các nguồn dữ liệu khác nhau . CurrencyManager và PropertyManager Khi một đối tượng Binding được tạo, một đối tượng CurrencyManager hay PropertyManager sẽ được tạo nếu đó là lần đầu tiên dữ liệu đó từ nguồn bị giới hạn. Mục đích của lớp này là định nghĩa vị trí của mẫu tin hiện hành trong nguồn dữ liệu và kết hợp tất cả dãy bindings khi mẫu tin hiện hành này bị thay đổi.
- Ví dụ sau sẽ hiển thị hai trường từ bảng Product và bao gồm một cách để di chuyển giữa các mẫu tin bằng các phương tiện của một control TrackBar. Đoạn mã cho ứng dụng này nằm hoàn toàn trong thư mục 09_ScrollingDataBinding using System; using System.Windows.Forms; using System.Data; using System.Data.SqlClient; public class ScrollingDataBinding : System.Windows.Forms.Form { private Button retrieveButton; private TextBox textName; private TextBox textQuan; private TrackBar trackBar; private DataSet ds; Ứng dụng trên tạo cửa sổ và tất cả control cho cửa sổ đó bên trong một hàm khởi tạo ScrollingDataBinding: public ScrollingDataBinding() { this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(464, 253); this.Text = "09_ScrollingDataBinding"; this.retrieveButton = new Button(); retrieveButton.Location = new System.Drawing.Point(4, 4); retrieveButton.Size = new System.Drawing.Size(75, 23); retrieveButton.TabIndex = 1; retrieveButton.Anchor = AnchorStyles.Top | AnchorStyles.Left; retrieveButton.Text = "Retrieve"; retrieveButton.Click += new System.EventHandler (this.retrieveButton_Click); this.Controls.Add(this.retrieveButton); this.textName = new TextBox();
- textName.Location = new System.Drawing.Point(4, 31); textName.Text = "Please click retrieve..."; textName.TabIndex = 2; textName.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right ; textName.Size = new System.Drawing.Size(456, 20); textName.Enabled = false; this.Controls.Add(this.textName); this.textQuan = new TextBox(); textQuan.Location = new System.Drawing.Point(4, 55); textQuan.Text = ""; textQuan.TabIndex = 3; textQuan.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Top; textQuan.Size = new System.Drawing.Size(456, 20); textQuan.Enabled = false; this.Controls.Add(this.textQuan); this.trackBar = new TrackBar(); trackBar.BeginInit(); trackBar.Dock = DockStyle.Bottom ; trackBar.Location = new System.Drawing.Point(0, 275); trackBar.TabIndex = 4; trackBar.Size = new System.Drawing.Size(504, 42); trackBar.Scroll += new System.EventHandler(this.trackBar_Scroll); trackBar.Enabled = false; this.Controls.Add(this.trackBar); } Khi nút Retrieve được click, sự kiện handler chọn tất cả mẫu tin từ bảng Product và lưu trữ trong Dataset riêng ds: protected void retrieveButton_Click(object sender, System.EventArgs e) { retrieveButton.Enabled = false ; ds = CreateDataSet(); Tiếp theo là hai control văn bản được giới hạn textName.DataBindings.Add("Text" , ds , "Products.ProductName"); textQuan.DataBindings.Add("Text" , ds , "Products.QuantityPerUnit"); trackBar.Minimum = 0 ;
- trackBar.Maximum = this.BindingContext[ds,"Products"].Count – 1; textName.Enabled = true; textQuan.Enabled = true; trackBar.Enabled = true; } Ở đây chúng ta có một mẫu tin cuộn để phản ứng lại với sự di chuyển của TrackBar: protected void trackBar_Scroll(object sender , System.EventArgs e) { this.BindingContext[ds,"Products"].Position = trackBar.Value; } private DataSet CreateDataSet() { string source = "server=(local)\\NetSDK;" + "uid=QSUser;pwd=QSPassword;" + "database=northwind"; string customers = "SELECT * FROM Products"; SqlConnection con = new SqlConnection(source); SqlDataAdapter da = new SqlDataAdapter(customers , con); DataSet ds = new DataSet(); da.Fill(ds , "Products"); return ds; } static void Main() { Application.Run(new ScrollingDataBinding()); } } Khi dữ liệu được khôi phục, vị trí lớn nhất trên track bar được cài là số lượng của mẫu tin. Sau đó, trong phương thức scroll ở trên, chúng ta cài vị trí của BindingContext cho DataTable products đến vị trí của scroll bar thumb. Nó thay đổi mẫu tin hiện hành từ DataTable, vì thế tất cả control giới hạn đến hàng hiện hành.
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Giáo trình cấu trúc dữ liệu và giải thuật_Chương 3: Cấu trúc Stack & Queue
18 p |
583 |
348
-
Bài giảng Cấu trúc dữ liệu & thuật toán: Chương 3 - Nguyễn Đức Nghĩa
0 p |
282 |
151
-
Cơ sở dữ liệu Trong Microsoft .NET Framework phần 1
8 p |
166 |
76
-
Bài giảng Lập trình java cơ bản: Chương 5 - Lê Tân
26 p |
179 |
73
-
Tự học lập trình cơ sở dữ liệu Visual C .NEt part 3
39 p |
128 |
69
-
Cơ sở dữ liệu Trong Microsoft .NET Framework phần 2
8 p |
112 |
47
-
Cơ sở dữ liệu Trong Microsoft .NET Framework phần cuối
8 p |
96 |
45
-
Các chương trình mẫu .NET part 3
91 p |
76 |
40
-
Cơ sở dữ liệu Trong Microsoft .NET Framework phần 4
8 p |
101 |
39
-
Silverlight - Chapter 7 - Làm việc với dữ liệu trong Silverlight
0 p |
163 |
29
-
Cơ sở dữ liệu Trong Microsoft .NET Framework phần 3
9 p |
73 |
27
-
Mô hình kết nối cơ sở dữ liệu ADO.NET
11 p |
90 |
24
-
Cách bind dữ liệu XML
8 p |
97 |
22
-
Cấu trúc dữ liệu và giải thuật - Dương Thành Phết
14 p |
61 |
12
-
Bài giảng Lập trình cơ sở dữ liệu với ADO.Net
29 p |
14 |
6
-
Cách Xem Dữ liệu Trong .NET part 2
16 p |
51 |
5
-
Cách Xem Dữ liệu Trong .NET part 5
1 p |
29 |
3

Set-Cookie: TLDEVNamespace=aiif130akeobp5p84d7dm81j70; path=/; domain=.tailieu.vn; HttpOnly


text:
Đến với thành phố sông Hàn, ngoài chỉ việc trải nghiệm những bãi biển xanh ngát, cây cầu lung linh về đêm, bạn sẽ khó lòng bỏ qua các món đặc sản hấp dẫn ngay từ vẻ ngoài.Mì QuảngCũng như phở, bún hay hủ tiếu, mì Quảng được chế biến từ gạo nhưng lại có hương vị...Chi tiết »
Món ăn nhất định phải thử ở Đà Nẵng

markdown:
Đến với thành phố sông Hàn, ngoài chỉ việc trải nghiệm những bãi biển xanh ngát, cây cầu lung linh về đêm, bạn sẽ khó lòng bỏ qua các món đặc sản hấp dẫn ngay từ vẻ ngoài.Mì QuảngCũng như phở, bún hay hủ tiếu, mì Quảng được chế biến từ gạo nhưng lại có hương vị...
[Chi tiết »](https://chothuexemientrung.com/mon-an-nhat-dinh-phai-thu-o-da-nang.html)

Server: Apache/2.4.25 (Unix) OpenSSL/1.0.1e-fips mod_bwlimited/1.4

Set-Cookie: wordpress_logged_in_d8a978385f36c58f361de0ffe59ece75=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/; secure; httponly


text:
Quảng cáo của đối tác
Premier Village Phú Quốc xổ số mega soi cầu lô tô game online soi cầu đặc biệtt xổ số mega 6/45 mua ban nha dat nha dat da nang nha dat ha noi Premier Village Phú Quốc Resort xổ số tự chọn nha dat hai duong nha dat hai phong livescore kết quả xổ số mega 6/45 truc tiep xo so dự đoán xổ số thống kê xổ số Premier Residences Phú Quốc link sopcast premier league sopcast thiết bị định vị trực tiếp xổ số mega 6/45 thiết bị định vị ô tô trực tiếp xổ số cuoi xuyen viet giong hat viet 2015 kết quả xổ số đại lý xổ số mega 6/45 thach thuc danh hai Cẩm nang Đầu Tư Premier Village Phu Quoc 5s online co dau 8 tuoi Dang ky M88 live scores serie a sopcast

markdown:
[Nhận định](/nhan-dinh-bong-da.html) [Tường thuật](/tin-tuc/tuong-thuat-bong-da) [Tin tức bóng đá](/tin-tuc-bong-da.html) [Kết quả bóng đá](/ket-qua-bong-da.ikq) [Lịch thi đấu bóng đá](/lich-thi-dau-bong-da.hs) [Kèo bóng đá](/ty-le-keo-bong-da.html) [Bảng xếp hạng bóng đá](/bang-xep-hang-bong-da) [Video Clip](/video-clip-bong-da.html) [Ảnh bóng đá](/anh.abd) [Game dự đoán](/du-doan-bong-da.html)
## Thông tin đội bóng Undy Athletic
|Thành lập|
|Quốc gia||Wales|
|Địa chỉ|
|Website|
|Tuổi trung bình||(Đang cập nhật)|
|Danh hiệu||(Đang cập nhật)|
|Số lượng fan||(Đang cập nhật)|
|Tags (Từ khóa)|
Quảng cáo của đối tác
[Premier Village Phú Quốc](http://lotuslandvn.com/du-an/premier-village-phu-quoc/) [xổ số mega](http://www.xosomega.com/) [soi cầu lô tô](http://soicauxoso.com/soi-cau-lo-to) [game online](http://lagavi.com/tin-tuc/game-online) [soi cầu đặc biệtt](http://soicauxoso.com/soi-cau-dac-biet) [xổ số mega 6/45](http://www.xosomega.com/645/) [mua ban nha dat](http://timdat.net/) [nha dat da nang](http://timdat.net/nha-dat-da-nang) [nha dat ha noi](http://timdat.net/nha-dat-ha-noi) [Premier Village Phú Quốc Resort](http://lotuslandvn.com/tag/premier-village-phu-quoc/) [xổ số tự chọn](http://www.xosomega.com/tag/xo-so-mega-645/) [nha dat hai duong](http://timdat.net/nha-dat-hai-duong) [nha dat hai phong](http://timdat.net/nha-dat-hai-phong) [livescore](http://m.ibongda.vn/livescore) [kết quả xổ số mega 6/45](http://www.xosomega.com/ket-qua/xo-so-mega-6-45/) [truc tiep xo so](http://wap.soicauxoso.com/) [dự đoán xổ số](http://soicauxoso.com/du-doan-xo-so) [thống kê xổ số](http://soicauxoso.com/thong-ke-xo-so) [Premier Residences Phú Quốc](http://lotuslandvn.com/premier-residences-phu-quoc/) [link sopcast](http://soccer188.net/link-sopcast) [premier league sopcast](http://soccer188.net/link-sopcast/english-premier-league.s1) [thiết bị định vị](http://thegioidinhvi.vn/thiet-bi-dinh-vi) [trực tiếp xổ số mega 6/45](http://www.xosomega.com/645/truc-tiep-ket-qua-xo-so-mega-645/) [thiết bị định vị ô tô](http://thegioidinhvi.vn/thiet-bi-dinh-vi/thiet-bi-dinh-vi-o-to) [trực tiếp xổ số](http://soicauxoso.com/xo-so-truc-tiep) [cuoi xuyen viet](http://youtube.mtube.vn/tag/cuoi+xuyen+viet+chung+ket+6) [giong hat viet 2015](http://youtube.mtube.vn/tag/giong+hat+viet+2015) [kết quả xổ số](http://soicauxoso.com/ket-qua-xo-so) [đại lý xổ số mega 6/45](http://www.xosomega.com/645/lien-he-lam-dai-ly-xo-so-tu-chon-vietlott/) [thach thuc danh hai](http://youtube.mtube.vn/tag/thach+thuc+danh+hai) [Cẩm nang Đầu Tư Premier Village Phu Quoc](http://lotuslandvn.com/cam-nang-dau-tu-du-an-premier-village-phu-quoc-resort/) [5s online](http://youtube.mtube.vn/tag/5s+online) [co dau 8 tuoi](http://youtube.mtube.vn/tag/co+dau+8+tuoi) [Dang ky M88](https://dangkycado.net)
[live scores](http://m.soccer188.net/)
[serie a sopcast](http://m.soccer188.net/sopcast)

WARC-Truncated: length

Server: nginx


text:
Do ái sinh sầu ưu,do ái sinh sợ hãi; ai thoát khỏi tham ái, không sầu, đâu sợ hãi?Kinh Pháp Cú (Kệ số 212)
Tôi phản đối bạo lực vì ngay cả khi nó có vẻ như điều tốt đẹp thì đó cũng chỉ là tạm thời, nhưng tội ác nó tạo ra thì tồn tại mãi mãi. (I object to violence because when it appears to do good, the good is only temporary; the evil it does is permanent.)Mahatma Gandhi
Ta như thầy thuốc, biết bệnh cho thuốc. Người bệnh chịu uống thuốc ấy hay không, chẳng phải lỗi thầy thuốc. Lại cũng như người khéo chỉ đường, chỉ cho mọi người con đường tốt. Nghe rồi mà chẳng đi theo, thật chẳng phải lỗi người chỉ đường.Kinh Lời dạy cuối cùng
Người thành công là người có thể xây dựng một nền tảng vững chắc bằng chính những viên gạch người khác đã ném vào anh ta. (A successful man is one who can lay a firm foundation with the bricks others have thrown at him.)David Brinkley
Thành công không được quyết định bởi sự thông minh tài giỏi, mà chính là ở khả năng vượt qua chướng ngại.Sưu tầm
Hành động thiếu tri thức là nguy hiểm, tri thức mà không hành động là vô ích. (Action without knowledge is dangerous, knowledge without action is useless. )Walter Evert Myer
Hạnh phúc không tạo thành bởi số lượng những gì ta có, mà từ mức độ vui hưởng cuộc sống của chúng ta. (It is not how much we have, but how much we enjoy, that makes happiness.)Charles Spurgeon
Hạnh phúc là khi những gì bạn suy nghĩ, nói ra và thực hiện đều hòa hợp với nhau. (Happiness is when what you think, what you say, and what you do are in harmony.)Mahatma Gandhi
Nên biết rằng tâm nóng giận còn hơn cả lửa dữ, phải thường phòng hộ không để cho nhập vào. Giặc cướp công đức không gì hơn tâm nóng giận.Kinh Lời dạy cuối cùng
Hãy lắng nghe trước khi nói. Hãy suy ngẫm trước khi viết. Hãy kiếm tiền trước khi tiêu pha. Hãy dành dụm trước khi nghỉ hưu. Hãy khảo sát trước khi đầu tư. Hãy chờ đợi trước khi phê phán. Hãy tha thứ trước khi cầu nguyện. Hãy cố gắng trước khi bỏ cuộc. Và hãy cho đi trước khi từ giã cuộc đời này. (Before you speak, listen. Before you write, think. Before you spend, earn. Before you retire, save. Before you invest, investigate. Before you critisize, wait. Before you pray, forgive. Before you quit, try. Before you die, give. )Sưu tầm
Dầu mưa bằng tiền vàng, Các dục khó thỏa mãn. Dục đắng nhiều ngọt ít, Biết vậy là bậc trí.Kinh Pháp cú (Kệ số 186)
Trang chủ »» Danh mục »» Từ điển Hán Anh »» Đang xem mục từ: thủy đầu - 水頭 »»
Quý vị có thể nhập âm Hán-Việt hoặc copy chữ Hán dán vào
Quý vị đang truy cập từ IP 23.20.193.33 và chưa ghi danh hoặc đăng nhập trên máy tính này. Nếu là thành viên, quý vị chỉ cần đăng nhập một lần duy nhất trên thiết bị truy cập, bằng email và mật khẩu đã chọn.
Chúng tôi khuyến khích việc ghi danh thành viên ,để thuận tiện trong việc chia sẻ thông tin, chia sẻ kinh nghiệm sống giữa các thành viên, đồng thời quý vị cũng sẽ nhận được sự hỗ trợ kỹ thuật từ Ban Quản Trị trong quá trình sử dụng website này.
Việc ghi danh là hoàn toàn miễn phí và tự nguyện.
Ghi danh hoặc đăng nhập

markdown:
Do ái sinh sầu ưu,do ái sinh sợ hãi; ai thoát khỏi tham ái, không sầu, đâu sợ hãi?Kinh Pháp Cú (Kệ số 212)
Tôi phản đối bạo lực vì ngay cả khi nó có vẻ như điều tốt đẹp thì đó cũng chỉ là tạm thời, nhưng tội ác nó tạo ra thì tồn tại mãi mãi. (I object to violence because when it appears to do good, the good is only temporary; the evil it does is permanent.)Mahatma Gandhi
Ta như thầy thuốc, biết bệnh cho thuốc. Người bệnh chịu uống thuốc ấy hay không, chẳng phải lỗi thầy thuốc. Lại cũng như người khéo chỉ đường, chỉ cho mọi người con đường tốt. Nghe rồi mà chẳng đi theo, thật chẳng phải lỗi người chỉ đường.Kinh Lời dạy cuối cùng
Người thành công là người có thể xây dựng một nền tảng vững chắc bằng chính những viên gạch người khác đã ném vào anh ta. (A successful man is one who can lay a firm foundation with the bricks others have thrown at him.)David Brinkley
Thành công không được quyết định bởi sự thông minh tài giỏi, mà chính là ở khả năng vượt qua chướng ngại.Sưu tầm
Hành động thiếu tri thức là nguy hiểm, tri thức mà không hành động là vô ích. (Action without knowledge is dangerous, knowledge without action is useless. )Walter Evert Myer
Hạnh phúc không tạo thành bởi số lượng những gì ta có, mà từ mức độ vui hưởng cuộc sống của chúng ta. (It is not how much we have, but how much we enjoy, that makes happiness.)Charles Spurgeon
Hạnh phúc là khi những gì bạn suy nghĩ, nói ra và thực hiện đều hòa hợp với nhau. (Happiness is when what you think, what you say, and what you do are in harmony.)Mahatma Gandhi
Nên biết rằng tâm nóng giận còn hơn cả lửa dữ, phải thường phòng hộ không để cho nhập vào. Giặc cướp công đức không gì hơn tâm nóng giận.Kinh Lời dạy cuối cùng
Hãy lắng nghe trước khi nói. Hãy suy ngẫm trước khi viết. Hãy kiếm tiền trước khi tiêu pha. Hãy dành dụm trước khi nghỉ hưu. Hãy khảo sát trước khi đầu tư. Hãy chờ đợi trước khi phê phán. Hãy tha thứ trước khi cầu nguyện. Hãy cố gắng trước khi bỏ cuộc. Và hãy cho đi trước khi từ giã cuộc đời này. (Before you speak, listen. Before you write, think. Before you spend, earn. Before you retire, save. Before you invest, investigate. Before you critisize, wait. Before you pray, forgive. Before you quit, try. Before you die, give. )Sưu tầm
Dầu mưa bằng tiền vàng, Các dục khó thỏa mãn. Dục đắng nhiều ngọt ít, Biết vậy là bậc trí.Kinh Pháp cú (Kệ số 186)
[Trang chủ](Home.html) »»
[Danh mục](danh-muc_thu-vien_tongquat_rong-mo-tam-hon.html) »»
[Từ điển Hán Anh](tu-dien_han-anh_none_rong-mo-tam-hon.html) »»
Đang xem mục từ: thủy đầu - 水頭 »»
Quý vị có thể nhập âm Hán-Việt hoặc copy chữ Hán dán vào
**Quý vị đang truy cập từ IP 23.20.193.33 và chưa ghi danh hoặc đăng nhập trên máy tính này. **Nếu là thành viên, quý vị chỉ cần đăng nhập một lần duy nhất trên thiết bị truy cập, bằng email và mật khẩu đã chọn.
Chúng tôi khuyến khích việc
**ghi danh thành viên **,để thuận tiện trong việc chia sẻ thông tin, chia sẻ kinh nghiệm sống giữa các thành viên, đồng thời quý vị cũng sẽ nhận được sự hỗ trợ kỹ thuật từ Ban Quản Trị trong quá trình sử dụng website này.
** Việc ghi danh là hoàn toàn miễn phí và tự nguyện**.
Ghi danh hoặc đăng nhập

Server: nginx/1.10.0 (Ubuntu)


text:
.
Bán xe máy cũ Exciter 150 những điều cần lưu ý
7 lưu ý đơn giản để bán xe máy Exciter 150 cũ giá cao Bán xe máy Exciter 150 cũ không khó nhưng cũng không dễ nếu như bạn chưa có nhiều kinh nghiệm. Chính vì thế, để bán được xe máy một cách nhanh c...
So sánh 2 chiếc xe chiếc lược giá cạnh tranh Yamaha Exciter 150 và Yamaha Exciter 175
So sánh 2 chiếc xe chiếc lược giá cạnh tranh Yamaha Exciter 150 và Yamaha Exciter 175 Đánh giá xe Exciter 2016 175cc & Exciter 150 cc Fi 2015 Dòng Exciter không chỉ ở Việt Nam quan tâm mà các nước lân cận như Malaysia...

markdown:
.
##
##
![ Bán xe máy cũ Exciter 150 những điều cần lưu ý](http://cdn.standee.vn/asset/home/img/250/ban_xe_may_cu_exciter_150_nhung_dieu_can_luu_y20160426085620.jpg)
##
[Bán xe máy cũ Exciter 150 những điều cần lưu ý](http://standee.vn/ban-xe-may-cu-exciter-150-nhung-dieu-can-luu-y-188.html)
7 lưu ý đơn giản để bán xe máy Exciter 150 cũ giá cao Bán xe máy Exciter 150 cũ không khó nhưng cũng không dễ nếu như bạn chưa có nhiều kinh nghiệm. Chính vì thế, để bán được xe máy một cách nhanh c...
![ So sánh 2 chiếc xe chiếc lược giá cạnh tranh Yamaha Exciter 150 và Yamaha Exciter 175](http://cdn.standee.vn/asset/home/img/250/so_sanh_2_chiec_xe_chiec_luoc_gia_canh_tranh_yamaha_exciter_150_va_yamaha_exciter_17520160606170539.jpg)
##
[So sánh 2 chiếc xe chiếc lược giá cạnh tranh Yamaha Exciter 150 và Yamaha Exciter 175](http://standee.vn/so-sanh-2-chiec-xe-chiec-luoc-gia-canh-tranh-yamaha-exciter-150-va-yamaha-exciter-175-198.html)
So sánh 2 chiếc xe chiếc lược giá cạnh tranh Yamaha Exciter 150 và Yamaha Exciter 175 Đánh giá xe Exciter 2016 175cc & Exciter 150 cc Fi 2015 Dòng Exciter không chỉ ở Việt Nam quan tâm mà các nước lân cận như Malaysia...

Server: VNH


text:
Khoảng 14h30 ngày 12/7/2012, trên quốc lộ 22, huyện Hóc Môn, TP. Hồ Chí Minh xảy ra một vụ va chạm liên hoàn giữa 5 xe ô tô, khiếnnhiều người hoảng loạn.
Theo thông tin ban đầu, thời điểm trên, đoàn xe đang lưu thông trên quốc lộ 22 hướng từ Củ Chi về TP. Hồ Chí Minh, khi tới đèn đỏ tại ngã tư Giếng Nước bỗng nhiên chiếc xe 14 chỗ mang BKS 70K – 19xx chạy với tốc độ cao không kiểm soát được tốc độ đã tông thẳngvào đuôi xe 7 chỗ BKS 56N – 29xx do tài xế Hoàng Đình Thi (SN 1956, ngụ quận Tân Bình, TP. HCM) điều khiển.
Chiếc xe này lao về phía trước, tông vào đuôi xe taxi BKS 51A - 540.xx do tài xế Lực Chí Hào (26 tuổi, ngụ quận 1) điều khiển. Do quá bất ngờ bất ngờ nên 2 xe 4 chỗ khác đi sau cũng không thắng kịp nên đã tông vào đuôi xe 14 chỗ.
Tại hiện trường, xe 14 chỗ và xe 7 chỗ hư hỏng nặng, đầu xe biến dạng, còn các xe khác chỉ bị hư hỏng nhẹ. Vụ tai nạn liên hoàn xảy ra làm nhiều người đi đường hoảng loạn, rất may không có thương tích về người, nhưng giao thông qua đây bị ùn tắc nghiêm trọng,
Nhận được tin báo, lực lượng CSGT huyện Hóc Môn đã có mặt giải quyết và phân luồnggiao thông, 2 xe cẩu đã được huy động đến để đưa hai phương tiện hư hỏng nặng rời khỏi hiện trường.
Đến hơn 16h cùng ngày, hiện trường vụ việc mới được giải quyết xong. Hiện nguyên nhân vụ tai nạn trên được cơ quan chức năng điều tra làm rõ.
Dưới đây là một số hình ảnh hiện trường vụ tai nạn liên hoàn:
Tin, ảnh: Lê Linh
Ngày 12/7, Bộ Lao động Thương binh và Xã hội đã chính thức khởi động chuyên trang lấy ý kiến trẻ em trên internet và các hoạt động thăm dò ý kiến trẻ em về sửa đổi Luật Bảo vệ, chăm sóc trẻ em, nhằm thúc đẩy quyền tham gia của trẻ em tại Việt Nam.
Vào khoảng 14 giờ ngày 23/7, tại Km 334 + 200, Quốc lộ 4H, thuộc địa bàn xã Nậm Ban (huyện Nậm Nhùn, tỉnh Lai Châu) xảy ra sạt lở lớn với khối lượng hàng nghìn m3 đất đá, gây chia cắt tuyến giao thông chính của huyện Mường Tè nối với các huyện, thành phố. Vụ sạt lở không gây thiệt hại về người và tài sản.
Tình trạng phá rừng ở huyện Ea Súp (Đắk Lắk) thời gian gần đây diễn ra khá phức tạp. Các đối tượng phá rừng ngày càng manh động, ngang nhiên vào rừng dùng cưa máy đốn hạ gỗ rừng tự nhiên.
Ông Trần Anh Tuấn, Phó Giám đốc Trung tâm Dự báo nhu cầu nhân lực và thông tin thị trường lao động Thành phố Hồ Chí Minh cho biết: Thành phố có 139.000 chỗ làm việc trong 6 tháng cuối năm 2017; trong đó quý III có 71.000 chỗ và quý IV có 68.000 chỗ.
Có những số phận dù cố gắng đến thế nào, họ vẫn không thể thoát khỏi sự khắc nghiệt mà ông trời sắp đặt. Câu chuyện của cô Phạm Thị Cương trong tập 13 chương trình Hát mãi ước mơ chính là một trường hợp như thế.
Thương binh Nguyễn Thành Tuế là “đầu tàu” trong phong trào sản xuất lúa theo mô hình cánh đồng mẫu lớn tại địa phương.
Giá dịch vụ khám bệnh, chữa bệnh không thuộc phạm vi thanh toán của Quỹ Bảo hiểm y tế đối với cơ sở khám bệnh, chữa bệnh của Nhà nước sẽ chính thức áp dụng từ ngày 1/8 tại Hà Nội.

Connection: Keep-Alive


text:
PHẦN 1: TÌM HIỂU SƠ VỀ WEB SERVICE
* Web Service là những thành phần ứng dụng dùng để chuyển đổi một ứng dụng thông thường sang một ứng dụng web. Đồng thời nó cũng xuất bản các chức năng của mình để mọi người dùng internet trên thế giới đều có thể sử dụng thông qua nền tảng web. Web Serviece truyền thông bằng cách sử dụng các giao thức mở, tài nguyên phần mềm có thể xác định bằng địa chỉ URL, thực hiện các chức năng và đưa ra các thông tin người dùng yêu cầu, các ứng dụng độ lập và tự mô tả chính nó. Nó bao gồm các modun độc lập cho hoạt động của khác hàng và doanh nghiệp và bản thân nó được thực thi trên server. Nền tảng cơ bản của WS là XML + HTTP. Bất cứ một ứng dụng nào cũng đều có thể có một thành phần WS. WS có thể được tạo ra bằng bất kỳ một ngôn ngữ lập trình nào.
* Đặc điểm:
- Cho phép client và server tương tác ngay cả trong môi trường khác nhau. (Ví dụ server chạy linux, client chạy windows).
- Phần lớn được xây dựng dựa trên mã nguồn mở và phát triển các chuẩn đã được công nhận. (Ví dụ XML).
- Nó có thể triển khai bởi 1 phần mềm ứng dụng phía server (Ví dụ : PHP, Oracle Application server, Microsoft .NET)
Mặc dù có nhiều ưu điểm : Có nhiều mô-đun và có thể công bố lên internet, khả năng hoạt động rộng lớn với phần mềm khác nhau chạy nền tảng khác nhau, sử dụng các giao thức chuẩn mở, nâng cao khả năng tái sử dụng, cho phép các tiền trình / chức năng nghiệp vụ đóng gói trong giao diện dịch vụ web, dễ dàng cho việc phát triển các ứng dụng phân tán. Nhưng những thiệt hại lớn sẽ xảy ra vào khoảng thời gian chết của dịch vụ web, có quá nhiều chuẩn cho dịch vụ web khiến người dùng khó nắm bắt, phải quan tâm nhiều hơn tới vấn đề an toàn và bảo mật.
(tham khảo từ Web Services Tutorial - W3Schools và các đồ án nghiên cứu về web service)
VD rõ nhất về tính tiện dụng của Web Service: bạn cần máy tính thực hiện công việc A -> bạn sẽ viết code cho công việc A cho máy tính; nhưng bên cạnh đó bạn cũng muốn phát triển chương trình cho smartphone thực hiện công việc A -> lại phải viết code xử lí A cho phone, khá mất công. => như vậy có thể làm theo hướng: viết 1 hàm xử lí công việc A, đưa lên Web Service (tức là lên mạng); khi cần chỉ cần cho tương tác đến cái hàm kia, rất tiện (chỉ mỗi tội phải có kết nối net, mà cái này thì giờ chắc 24/24 luôn rồi )
PHẦN 2: CÁCH THỰC HIỆN ĐỂ CÓ THỂ TƯƠNG TÁC VỚI CSDL QUA MẠNG INTERNET TRÊN WP8/u]
Gồm 3 bước:
+[u]1: Tạo CSDL SQL Server (yêu cầu: từ SQL Server 2008 R2 trở lên): chắc bước này ai cũng biết nên khỏi nói
+2: Tạo WebService để tương tác với CSDL: ở đây mình dùng đề tài quản lý kho hàng
– Mình sử dụng Visual Studio 2010 để tạo Webservice, bạn có thể dùng 2012, 2013 cũng được không sao.
– Từ menu File/ chọn New/ chọn Website (hoặc nhấn tổ hợp phím Shift +ATL+ N) để tạo một website trong visual studio:
– Màn hình chọn Project xuất hiện: Ta chọn Empty Website như hình dưới đây rồi nhấn nút OK:
– Sau khi bấm OK, ta có giao diện như dưới đây:
– Bây giờ ta tiến hành viết .net webservice để tương tác tới CSDL đã tạo như sau (mình muốn dùng LinQ để viết code cho lẹ và giúp các bạn dễ hiểu hơn, các bạn hoàn toàn có thể viết các hàm như Procedure trong SQL, khi kết nối đến project WebService nó sẽ tự chuyển thành code C#):
Từ menu View/ chọn Server Explorer để mở cửa sổ kết nối CSDL như bến dưới đây:
– Trong màn hình Server Explorer/ ta bấm chọn biểu tượng kết nối mà mình tô vòng tròn màu đỏ.
– Màn hình kết nối được hiển thị ra như dưới đây:
– Tui đánh theo thứ tự từ 1->5:
1) Server name: Nhập tên Server của máy bạn vào đây, trên kia thì máy của tui tên là drthanh.
2) Chọn kiểu Authentication, bạn chọn loại nào cũng được, trên kia tui chọn Windows Authentication.
3) Chọn CSDL, dĩ nhiên ta phải chọn đúng CSDL dbproductmanager.
4) Test connection để kiểm tra xem có kết nối thành công hay không, khi bạn test mà nó ra cửa sổ sau là OK:
5) Bấm OK để chấp nhận Kết nối. Kết quả như sau:
– Bây giờ ta tiến hành dùng LinQ to SQL để tương tác tới CSDL này như sau: bấm chuột phải vào Project website tạo ở bước trên, chọn Add New Item:
Trong màn hình New Item ta chọn LINQ to SQL Classes như hình dưới đây, đặt tên ProductManager.dbml rồi nhấn nút Add:
– Sau khi bấm nút Add, ta được thông tin như hình dưới:
– Mình đánh dấu hình trên thành 4 vùng : 1,2,3,4.
Vùng 1: là vùng CSDL
Vùng 2: Là vùng ta kéo thả CSDL vào
Vùng 3: là vùng ta kéo thả các Store Procedure vào
Vùng 4: Vùng cấu trúc tập tin, lớp mà ta lập trình.
– Bây giờ ta tiến hành kéo thả CSDL vào vùng số 1 như sau:
+ Đè phím Ctrl + click chuột vào 2 bảng Catalog và Product rồi kéo vào vùng số 2, ta được giao diện:
Ở bước trên, hệ thống đã tự phát sinh các lớp, hàm (CRUD) cho phép chúng ta tương tác tới CSDL một cách dễ dàng. Ở đây nó tự động sinh ra lớp ProductManagerDataContext và các lớp tương ứng với mỗi bảng (tức là có 2 lớp tự động được phát sinh: Catalog và Product). Thông qua các lớp này chúng ta có thể tương tác được với CSDL.
– Tiếp tục tạo Webservice để cung cấp các hàm lấy dữ liệu, ta cũng bấm chuột phải vào Project/ chọn Add new Item để hiển thị màn hình dưới đây:
– Ở màn hình trên ta chọn Web Service, đặt tên cho nó (mywebservice) rồi nhấn nút Add.
– Khi nhấn nút Add, mặc định ta có thông tin của web service như sau:
– Ta tiến hành thêm một số hàm để sử dụng cho bài tập này như sau:
- 1- Hàm đếm xem có bao nhiêu danh mục trong bảng catalog
2- Hàm trả về danh sách Catalog
3- Hàm trả về thông tin của 1 Catalog theo Id
4- Hàm trả về danh sách Product
5- Hàm trả về danh sách Product theo Catalog Id
6- Hàm trả về thông tin của một Product theo Id
7- Hàm xóa Catalog theo ID
8- Hàm xóa Product theo ID.
9- Xuất tổng tiền của các mặt hàng
Mã: Chọn hết
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
/// <summary>
/// Summary description for mywebservice
/// </summary>
[WebService(Namespace = "http://tranduythanh.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class mywebservice : System.Web.Services.WebService {
ProductManagerDataContext db = null;
public mywebservice () {
//Uncomment the following line if using designed components
//InitializeComponent();
db = new ProductManagerDataContext();
}
[WebMethod]
public string HelloWorld() {
return "Hello World";
}
//Hàm đếm xem có bao nhiêu danh mục trong bảng catalog
[WebMethod]
public int CountCatalog()
{
return db.Catalogs.Count();
}
//2- Hàm trả về danh sách Catalog
[WebMethod]
public List<Catalog> getListCatalog()
{
List<Catalog> listCate = db.Catalogs.ToList();
foreach (Catalog c in listCate)
c.Products.Clear();
return listCate;
}
//3- Hàm trả về thông tin của 1 Catalog theo Id
[WebMethod]
public Catalog getCatalog(string id)
{
Catalog c=db.Catalogs.FirstOrDefault(x => x.CateId == id);
c.Products.Clear();
return c;
}
//4- Hàm trả về danh sách Product
[WebMethod]
public List<Product> getListProduct()
{
List<Product> listPro = db.Products.ToList();
foreach (Product p in listPro)
p.Catalog = null;
return listPro;
}
//5- Hàm trả về danh sách Product theo Catalog Id
[WebMethod]
public List<Product> getListProductByCatalogId(string id)
{
List<Product> listPro=db.Products.Where(x => x.CateId == id).ToList();
foreach(Product p in listPro)
p.Catalog=null;
return listPro;
}
//6- Hàm trả về thông tin của một Product theo Id
[WebMethod]
public Product getProduct(string id)
{
Product p = db.Products.FirstOrDefault(x => x.ProductId == id);
p.Catalog = null;
return p;
}
//7- Hàm xóa Catalog theo ID
[WebMethod]
public bool deleteCatalog(string id)
{
try
{
Catalog cate = getCatalog(id);
db.Catalogs.DeleteOnSubmit(cate);
db.SubmitChanges();
}
catch (Exception ex)
{
return false;
}
return true;
}
//8- Hàm xóa Product theo ID.
[WebMethod]
public bool deleteProduct(string id)
{
try
{
Product p = getProduct(id);
db.Products.DeleteOnSubmit(p);
db.SubmitChanges();
}
catch (Exception ex)
{
return false;
}
return true;
}
//9- Xuất tổng tiền của các mặt hàng
[WebMethod]
public double getToTalMoney()
{
return db.Products.Sum(x => x.TotalMoney).Value;
}
}
– Bạn chú ý đoạn code ở trên tui gán =null nhiều chỗ lý do để xử lý việc Loop trong thao tác Webservice, nếu có sự loop (hay đệ quy) thì nó không chấp nhận. Nếu viết bằng Winform hay Webform bình thường thì không sao.
– Ta tiến hành kiểm tra webservice trên máy cục bộ như sau (nhấn F5 để chạy):
bạn Thấy đấy, các hàm được hiển thị ra ở đây. Để test thì bạn chỉ cần bấm vào hàm rồi chọn Invoke là OK. Tui ví dụ chọn hàm CountCatalog và getListCatalog, getListProductByCatalogId:
Mục đích của chúng ta là kết nối từ WP tới WebService này để tương tác. Bạn có thể cấu hình IIS để chạy trên máy cục bộ, nhưng ở đây mình muốn hướng dẫn các bạn đưa nó lên Internet (trang Somee.com) để demo thực tế, tại vì thực tế là nó nằm trên internet. WP chỉ là client.
PHẦN 3: TẠO WEB SERVER VÀ TƯƠNG TÁC TỪ CLIENT
1: Tạo Web Server với somee.com
– Bước 1: Vào https://somee.com
– Bước 2: Chọn Free .Net hosting như hình dưới đây:
Bấm chọn Learn More để qua bước 3.
- Bước 3: Chọn Order để mua gói miễn phí này:
Bước 4: Nhập các thông số cần thiết để tạo tạo tài khoản:
Bấm Register new user and continue để đăng ký và tiếp tục với màn hình checkout.
Bước 5: Chọn các thông số rồi bấm Continue, màn hình Create Website sẽ hiển thị ra như bến dưới, ta nhập các thông tin rồi bấm:
Màn hình thông báo thành công hiển thị ra dưới đây:
Tiếp theo ta tạo CSDL cho trang testdrthanh.somee.com:
– Bấm chọn mục Databases ở bên tay trái trên màn hình ở trên:
Màn hình trên nó nút “Create” mà Tui khoanh màu đỏ, ta bấm vào nó. Màn hình tạo CSDL hiển thị ra, ở đây ta nên đặt cùng tên với CSDL mà ta tạo ở máy Client để dễ dàng Backup, Restore .
Sau khi nhập đầy đủ thông tin, bấm chọn “Create empty database”. Nếu tạo thành công thì ta có màn hình như dưới đây:
Bạn để ý dòng mình tô xanh , đó chính là chuỗi kết nối tới CSDL, bạn có thể copy paste chuỗi này dán vào chuỗi kết nối ở máy Local của bạn thì khi chạy website nó sẽ kết nối tới CSDL ở trên trang somee này.
workstation id=dbproductmanager.mssql.somee.com;packet size=4096;user id=drthanh_SQLLogin_1;pwd=7szjt75abq;data source=dbproductmanager.mssql.somee.com;persist security info=False;initial catalog=dbproductmanager
– "testdrthanh.somee.com" chính là sub domain mà nó cung cấp cho mình, dựa vào đây để ta lấy thông tin.
– Bây giờ ta tiến hành đưa dữ liệu từ máy Local lên somee.com, làm như sau:
1- Backup lại CSDL tại máy Local của bạn:
Bấm chuột phải vào CSDL/ chọn Tasks/ Chọn Backup:
Màn hình chọn Backup hiển thị ra như dưới đây, ta tiến hành nhập thông số rồi bấm OK:
Giờ bạn kiểm tra ổ đĩa D:/ xem có tập tin này hay chưa, nếu có tức là đã backup thành công.
2- Đưa file Backup này lên Server somee:
Ta chọn Restore database, rồi chọn “Choose File“, chọn đúng tập tin vừa backup ở trên rồi bấm “Upload the file and restore it“. Chờ báo thành công là OK:
Để test coi nó có chạy được hay không thì ta chọn mục “New SQL Query” ở màn hình trên, nó sẽ hiển thị ra cửa sổ cho phép ta nhập câu SQL:
– Như hình trên thì đã thành công.
3- Tiếp tục ta đưa Webservice lên somee để Test như sau:
– Dùng Win Zip của hệ điều hành Windows, nén lại source code và đẩy lên server. Dĩ nhiên ta cần sửa chuỗi kết nối lại. Như mục trên Tui đã nói là copy paste chuỗi kết nối :
workstation id=dbproductmanager.mssql.somee.com;packet size=4096;user id=drthanh_SQLLogin_1;pwd=7szjt75abq;data source=dbproductmanager.mssql.somee.com;persist security info=False;initial catalog=dbproductmanager
Thay thế cho chuỗi có sẵn ở máy Local như sau (dĩ nhiên khi bạn tạo thì chuỗi nó phải khác và bạn phải lấy theo chuỗi của bạn):
Trong Project Web Service, mở tập tin Web.config và thay thế bằng chuỗi trên:
– Sau đó tiến hành zip như sau:
– Ở hình trên là ta Ctrl+ A để chọn toàn bộ tập tin và thư mục/sau đó ta bấm chuột phải vào 1 tập tin bất kỳ trong thư mục chứa source code/ chọn Send to / chọn Compressed… như hình bên trên, nó phát sinh ra một file zip chứa toàn bộ source code trong này (ta chọn tập tin nào để bấm chuột phải cũng được).
– Sau khi có file zip, ta quay lại màn hình somee server để đưa source code lên như sau:
1- Chọn File Manager/ cửa sổ hiển thị lên chọn nút Upload như hình bên dưới:
Sau khi chọn nút Upload thì nó xuất hiện cho chúng ta nút Choose File để đưa file từ client lên Server/ ta chọn đúng file zip lúc này rồi bấm Upload and Unzip archives:
– Sau khi bấm Upload and unzip archives thì ta có kết quả như sau:
Bạn thấy đấy, toàn bộ source code đã được đưa lên server.
– Bây giờ ta tiến hành kiểm tra Webservice có chạy hay không như sau: "http://<tên subdomain>/<tên webservice>.asmx"
Như vậy là đã thành công, bạn có thể tiến hành kiểm tra từng Service trong này.
PHẦN 4: TƯƠNG TÁC TỪ C# (desktop)
Từ WebProject ở trên, bạn tạo thêm 1 Windows Form Project để lấy dữ liệu từ Service đó như sau:
– Khi bấm Nút “Get List Catalog”: Chương trình sẽ triệu gọi web service (hàm getListCatalog) lưu trên http://testdrthanh.somee.com/mywebservice.asmx và hiển thị vào ListBox (listbox_cate)
– Khi chọn Catalog bất kỳ trong listbox_cate thì sẽ hiển thị danh sách sản phẩm thuộc danh mục đang chọn vào listbox_product.
– Khi bấm nút “Delete Selected Product”: Sẽ xóa Product đang chọn trong listbox_product.
Sau đây là cách lấy dữ liệu từ webservice ở trên:
1- Bấm chuột phải vào Project/ chọn Add Service Reference:
2- Màn hình chọn WebService hiển thị ra như bên dưới đây:
3- Bấm chọn nút “Advanced“:
4- Ở màn hình trên ta chọn “Add Web Reference…“:
Mục số 1: Ta copy dán đường dẫn webservice vào
Mục số 2 đặt tên cho Web Reference rồi nhấn nút “Add Reference“.
Sau khi bạn nhấn nút “Add Reference” thì Project sẽ được thay đổi như sau:
File app.config tự động xuất hiện và bên trong nó có thông tin sau:
– Bây giờ ta tiến hành Coding cho các control trên giao diện như sau:
Mã: Chọn hết
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace TestWebService
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
bool isFinish = false;
com.somee.testdrthanh.mywebservice test = new com.somee.testdrthanh.mywebservice();
//Nút hiển thị danh sách Catalog
private void button1_Click(object sender, EventArgs e)
{
isFinish = false;
List<com.somee.testdrthanh.Catalog> listCate = test.getListCatalog().ToList();
listbox_cate.DataSource = listCate;
listbox_cate.DisplayMember="CateName";
listbox_cate.ValueMember="CateId";
isFinish = true;
}
//xử lý hiển thị danh sách sản phẩm theo danh mục
private void listbox_cate_SelectedIndexChanged(object sender, EventArgs e)
{
if (!isFinish) return;
if (listbox_cate.SelectedItem != null)
{
com.somee.testdrthanh.Catalog cate = listbox_cate.SelectedItem as com.somee.testdrthanh.Catalog;
List<com.somee.testdrthanh.Product> listProduct = test.getListProductByCatalogId(cate.CateId).ToList();
listbox_product.DataSource = listProduct;
listbox_product.DisplayMember = "ProductName";
listbox_product.ValueMember = "ProductId";
}
}
//xử lý nút xóa Product
private void button2_Click(object sender, EventArgs e)
{
if (listbox_product.SelectedItem == null)
return;
DialogResult ret = MessageBox.Show("Muốn xóa Product này hả?", "Xác nhận xóa", MessageBoxButtons.YesNo);
if (ret == DialogResult.Yes)
{
com.somee.testdrthanh.Product p = listbox_product.SelectedItem as com.somee.testdrthanh.Product;
bool isDelete= test.deleteProduct(p.ProductId);
if (isDelete)
{
com.somee.testdrthanh.Catalog cate = listbox_cate.SelectedItem as com.somee.testdrthanh.Catalog;
List<com.somee.testdrthanh.Product> listProduct = test.getListProductByCatalogId(cate.CateId).ToList();
listbox_product.DataSource = listProduct;
listbox_product.DisplayMember = "ProductName";
listbox_product.ValueMember = "ProductId";
}
else
{
MessageBox.Show("Không xóa được");
}
}
}
}
}
Khi thực thi thì ta có kết quả như sau:
Mình đã hướng dẫn chi tiết cách tạo Webservice, cách tạo CSDL, cách đưa dữ liệu lên Server somee, cách sử dụng LinQtoSQL, cách tương tác với Webservice...
Chúc các bạn thành công !!!

markdown:
PHẦN 1: TÌM HIỂU SƠ VỀ WEB SERVICE
* Web Service là những thành phần ứng dụng dùng để chuyển đổi một ứng dụng thông thường sang một ứng dụng web. Đồng thời nó cũng xuất bản các chức năng của mình để mọi người dùng internet trên thế giới đều có thể sử dụng thông qua nền tảng web. Web Serviece truyền thông bằng cách sử dụng các giao thức mở, tài nguyên phần mềm có thể xác định bằng địa chỉ URL, thực hiện các chức năng và đưa ra các thông tin người dùng yêu cầu, các ứng dụng độ lập và tự mô tả chính nó. Nó bao gồm các modun độc lập cho hoạt động của khác hàng và doanh nghiệp và bản thân nó được thực thi trên server. Nền tảng cơ bản của WS là XML + HTTP. Bất cứ một ứng dụng nào cũng đều có thể có một thành phần WS. WS có thể được tạo ra bằng bất kỳ một ngôn ngữ lập trình nào.
* Đặc điểm:
- Cho phép client và server tương tác ngay cả trong môi trường khác nhau. (Ví dụ server chạy linux, client chạy windows).
- Phần lớn được xây dựng dựa trên mã nguồn mở và phát triển các chuẩn đã được công nhận. (Ví dụ XML).
- Nó có thể triển khai bởi 1 phần mềm ứng dụng phía server (Ví dụ : PHP, Oracle Application server, Microsoft .NET)
Mặc dù có nhiều ưu điểm : Có nhiều mô-đun và có thể công bố lên internet, khả năng hoạt động rộng lớn với phần mềm khác nhau chạy nền tảng khác nhau, sử dụng các giao thức chuẩn mở, nâng cao khả năng tái sử dụng, cho phép các tiền trình / chức năng nghiệp vụ đóng gói trong giao diện dịch vụ web, dễ dàng cho việc phát triển các ứng dụng phân tán. Nhưng những thiệt hại lớn sẽ xảy ra vào khoảng thời gian chết của dịch vụ web, có quá nhiều chuẩn cho dịch vụ web khiến người dùng khó nắm bắt, phải quan tâm nhiều hơn tới vấn đề an toàn và bảo mật.
(tham khảo từ Web Services Tutorial - W3Schools và các đồ án nghiên cứu về web service)
VD rõ nhất về tính tiện dụng của Web Service: bạn cần máy tính thực hiện công việc A -> bạn sẽ viết code cho công việc A cho máy tính; nhưng bên cạnh đó bạn cũng muốn phát triển chương trình cho smartphone thực hiện công việc A -> lại phải viết code xử lí A cho phone, khá mất công. => như vậy có thể làm theo hướng: viết 1 hàm xử lí công việc A, đưa lên Web Service (tức là lên mạng); khi cần chỉ cần cho tương tác đến cái hàm kia, rất tiện (chỉ mỗi tội phải có kết nối net, mà cái này thì giờ chắc 24/24 luôn rồi
![Cười mỉm :)](./images/smilies/001.gif)
![Cười mỉm :)](./images/smilies/001.gif)
![Cười mỉm :)](./images/smilies/001.gif)
PHẦN 2: CÁCH THỰC HIỆN ĐỂ CÓ THỂ TƯƠNG TÁC VỚI CSDL QUA MẠNG INTERNET TRÊN WP8/u]
Gồm 3 bước:
+[u]1: Tạo CSDL SQL Server (yêu cầu: từ SQL Server 2008 R2 trở lên): chắc bước này ai cũng biết nên khỏi nói
+2: Tạo WebService để tương tác với CSDL: ở đây mình dùng đề tài quản lý kho hàng
– Mình sử dụng Visual Studio 2010 để tạo Webservice, bạn có thể dùng 2012, 2013 cũng được không sao.
– Từ menu File/ chọn New/ chọn Website (hoặc nhấn tổ hợp phím Shift +ATL+ N) để tạo một website trong visual studio:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_4.jpg)
– Màn hình chọn Project xuất hiện: Ta chọn Empty Website như hình dưới đây rồi nhấn nút OK:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_5.jpg)
– Sau khi bấm OK, ta có giao diện như dưới đây:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_6.jpg)
– Bây giờ ta tiến hành viết .net webservice để tương tác tới CSDL đã tạo như sau (mình muốn dùng LinQ để viết code cho lẹ và giúp các bạn dễ hiểu hơn, các bạn hoàn toàn có thể viết các hàm như Procedure trong SQL, khi kết nối đến project WebService nó sẽ tự chuyển thành code C#):
Từ menu View/ chọn Server Explorer để mở cửa sổ kết nối CSDL như bến dưới đây:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_7.jpg)
– Trong màn hình Server Explorer/ ta bấm chọn biểu tượng kết nối mà mình tô vòng tròn màu đỏ.
– Màn hình kết nối được hiển thị ra như dưới đây:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_8.jpg)
– Tui đánh theo thứ tự từ 1->5:
1) Server name: Nhập tên Server của máy bạn vào đây, trên kia thì máy của tui tên là drthanh.
2) Chọn kiểu Authentication, bạn chọn loại nào cũng được, trên kia tui chọn Windows Authentication.
3) Chọn CSDL, dĩ nhiên ta phải chọn đúng CSDL dbproductmanager.
4) Test connection để kiểm tra xem có kết nối thành công hay không, khi bạn test mà nó ra cửa sổ sau là OK:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_9.jpg)
5) Bấm OK để chấp nhận Kết nối. Kết quả như sau:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_10.jpg)
– Bây giờ ta tiến hành dùng LinQ to SQL để tương tác tới CSDL này như sau: bấm chuột phải vào Project website tạo ở bước trên, chọn Add New Item:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_11.jpg)
Trong màn hình New Item ta chọn LINQ to SQL Classes như hình dưới đây, đặt tên ProductManager.dbml rồi nhấn nút Add:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_13.jpg)
– Sau khi bấm nút Add, ta được thông tin như hình dưới:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_14.jpg)
– Mình đánh dấu hình trên thành 4 vùng : 1,2,3,4.
Vùng 1: là vùng CSDL
Vùng 2: Là vùng ta kéo thả CSDL vào
Vùng 3: là vùng ta kéo thả các Store Procedure vào
Vùng 4: Vùng cấu trúc tập tin, lớp mà ta lập trình.
– Bây giờ ta tiến hành kéo thả CSDL vào vùng số 1 như sau:
+ Đè phím Ctrl + click chuột vào 2 bảng Catalog và Product rồi kéo vào vùng số 2, ta được giao diện:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_15.jpg)
Ở bước trên, hệ thống đã tự phát sinh các lớp, hàm (CRUD) cho phép chúng ta tương tác tới CSDL một cách dễ dàng. Ở đây nó tự động sinh ra lớp ProductManagerDataContext và các lớp tương ứng với mỗi bảng (tức là có 2 lớp tự động được phát sinh: Catalog và Product). Thông qua các lớp này chúng ta có thể tương tác được với CSDL.
– Tiếp tục tạo Webservice để cung cấp các hàm lấy dữ liệu, ta cũng bấm chuột phải vào Project/ chọn Add new Item để hiển thị màn hình dưới đây:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_12.jpg)
– Ở màn hình trên ta chọn Web Service, đặt tên cho nó (mywebservice) rồi nhấn nút Add.
– Khi nhấn nút Add, mặc định ta có thông tin của web service như sau:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_16.jpg)
– Ta tiến hành thêm một số hàm để sử dụng cho bài tập này như sau:
- 1- Hàm đếm xem có bao nhiêu danh mục trong bảng catalog
2- Hàm trả về danh sách Catalog
3- Hàm trả về thông tin của 1 Catalog theo Id
4- Hàm trả về danh sách Product
5- Hàm trả về danh sách Product theo Catalog Id
6- Hàm trả về thông tin của một Product theo Id
7- Hàm xóa Catalog theo ID
8- Hàm xóa Product theo ID.
9- Xuất tổng tiền của các mặt hàng
Mã:
[Chọn hết](#)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
/// <summary>
/// Summary description for mywebservice
/// </summary>
[WebService(Namespace = "http://tranduythanh.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class mywebservice : System.Web.Services.WebService {
ProductManagerDataContext db = null;
public mywebservice () {
//Uncomment the following line if using designed components
//InitializeComponent();
db = new ProductManagerDataContext();
}
[WebMethod]
public string HelloWorld() {
return "Hello World";
}
//Hàm đếm xem có bao nhiêu danh mục trong bảng catalog
[WebMethod]
public int CountCatalog()
{
return db.Catalogs.Count();
}
//2- Hàm trả về danh sách Catalog
[WebMethod]
public List<Catalog> getListCatalog()
{
List<Catalog> listCate = db.Catalogs.ToList();
foreach (Catalog c in listCate)
c.Products.Clear();
return listCate;
}
//3- Hàm trả về thông tin của 1 Catalog theo Id
[WebMethod]
public Catalog getCatalog(string id)
{
Catalog c=db.Catalogs.FirstOrDefault(x => x.CateId == id);
c.Products.Clear();
return c;
}
//4- Hàm trả về danh sách Product
[WebMethod]
public List<Product> getListProduct()
{
List<Product> listPro = db.Products.ToList();
foreach (Product p in listPro)
p.Catalog = null;
return listPro;
}
//5- Hàm trả về danh sách Product theo Catalog Id
[WebMethod]
public List<Product> getListProductByCatalogId(string id)
{
List<Product> listPro=db.Products.Where(x => x.CateId == id).ToList();
foreach(Product p in listPro)
p.Catalog=null;
return listPro;
}
//6- Hàm trả về thông tin của một Product theo Id
[WebMethod]
public Product getProduct(string id)
{
Product p = db.Products.FirstOrDefault(x => x.ProductId == id);
p.Catalog = null;
return p;
}
//7- Hàm xóa Catalog theo ID
[WebMethod]
public bool deleteCatalog(string id)
{
try
{
Catalog cate = getCatalog(id);
db.Catalogs.DeleteOnSubmit(cate);
db.SubmitChanges();
}
catch (Exception ex)
{
return false;
}
return true;
}
//8- Hàm xóa Product theo ID.
[WebMethod]
public bool deleteProduct(string id)
{
try
{
Product p = getProduct(id);
db.Products.DeleteOnSubmit(p);
db.SubmitChanges();
}
catch (Exception ex)
{
return false;
}
return true;
}
//9- Xuất tổng tiền của các mặt hàng
[WebMethod]
public double getToTalMoney()
{
return db.Products.Sum(x => x.TotalMoney).Value;
}
}
– Bạn chú ý đoạn code ở trên tui gán =null nhiều chỗ lý do để xử lý việc Loop trong thao tác Webservice, nếu có sự loop (hay đệ quy) thì nó không chấp nhận. Nếu viết bằng Winform hay Webform bình thường thì không sao.
– Ta tiến hành kiểm tra webservice trên máy cục bộ như sau (nhấn F5 để chạy):
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_17.jpg)
bạn Thấy đấy, các hàm được hiển thị ra ở đây. Để test thì bạn chỉ cần bấm vào hàm rồi chọn Invoke là OK. Tui ví dụ chọn hàm CountCatalog và getListCatalog, getListProductByCatalogId:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_18.jpg)
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_19.jpg)
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_20.jpg)
Mục đích của chúng ta là kết nối từ WP tới WebService này để tương tác. Bạn có thể cấu hình IIS để chạy trên máy cục bộ, nhưng ở đây mình muốn hướng dẫn các bạn đưa nó lên Internet (trang Somee.com) để demo thực tế, tại vì thực tế là nó nằm trên internet. WP chỉ là client.
PHẦN 3: TẠO WEB SERVER VÀ TƯƠNG TÁC TỪ CLIENT
1: Tạo Web Server với somee.com
– Bước 1: Vào
[https://somee.com](https://somee.com)
– Bước 2: Chọn Free .Net hosting như hình dưới đây:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_21.jpg)
Bấm chọn Learn More để qua bước 3.
- Bước 3: Chọn Order để mua gói miễn phí này:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_22.jpg)
Bước 4: Nhập các thông số cần thiết để tạo tạo tài khoản:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_23.jpg)
Bấm Register new user and continue để đăng ký và tiếp tục với màn hình checkout.
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_24.jpg)
Bước 5: Chọn các thông số rồi bấm Continue, màn hình Create Website sẽ hiển thị ra như bến dưới, ta nhập các thông tin rồi bấm:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_25.jpg)
Màn hình thông báo thành công hiển thị ra dưới đây:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_26.jpg)
Tiếp theo ta tạo CSDL cho trang testdrthanh.somee.com:
– Bấm chọn mục Databases ở bên tay trái trên màn hình ở trên:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_27.jpg)
Màn hình trên nó nút “Create” mà Tui khoanh màu đỏ, ta bấm vào nó. Màn hình tạo CSDL hiển thị ra, ở đây ta nên đặt cùng tên với CSDL mà ta tạo ở máy Client để dễ dàng Backup, Restore .
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_28.jpg)
Sau khi nhập đầy đủ thông tin, bấm chọn “Create empty database”. Nếu tạo thành công thì ta có màn hình như dưới đây:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_29.jpg)
Bạn để ý dòng mình tô xanh , đó chính là chuỗi kết nối tới CSDL, bạn có thể copy paste chuỗi này dán vào chuỗi kết nối ở máy Local của bạn thì khi chạy website nó sẽ kết nối tới CSDL ở trên trang somee này.
workstation id=dbproductmanager.mssql.somee.com;packet size=4096;user id=drthanh_SQLLogin_1;pwd=7szjt75abq;data source=dbproductmanager.mssql.somee.com;persist security info=False;initial catalog=dbproductmanager
– "testdrthanh.somee.com" chính là sub domain mà nó cung cấp cho mình, dựa vào đây để ta lấy thông tin.
– Bây giờ ta tiến hành đưa dữ liệu từ máy Local lên somee.com, làm như sau:
1- Backup lại CSDL tại máy Local của bạn:
Bấm chuột phải vào CSDL/ chọn Tasks/ Chọn Backup:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_30.jpg)
Màn hình chọn Backup hiển thị ra như dưới đây, ta tiến hành nhập thông số rồi bấm OK:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_31.jpg)
Giờ bạn kiểm tra ổ đĩa D:/ xem có tập tin này hay chưa, nếu có tức là đã backup thành công.
2- Đưa file Backup này lên Server somee:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_32.jpg)
Ta chọn Restore database, rồi chọn “Choose File“, chọn đúng tập tin vừa backup ở trên rồi bấm “Upload the file and restore it“. Chờ báo thành công là OK:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_33.jpg)
Để test coi nó có chạy được hay không thì ta chọn mục “New SQL Query” ở màn hình trên, nó sẽ hiển thị ra cửa sổ cho phép ta nhập câu SQL:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_34.jpg)
– Như hình trên thì đã thành công.
3- Tiếp tục ta đưa Webservice lên somee để Test như sau:
– Dùng Win Zip của hệ điều hành Windows, nén lại source code và đẩy lên server. Dĩ nhiên ta cần sửa chuỗi kết nối lại. Như mục trên Tui đã nói là copy paste chuỗi kết nối :
workstation id=dbproductmanager.mssql.somee.com;packet size=4096;user id=drthanh_SQLLogin_1;pwd=7szjt75abq;data source=dbproductmanager.mssql.somee.com;persist security info=False;initial catalog=dbproductmanager
Thay thế cho chuỗi có sẵn ở máy Local như sau (dĩ nhiên khi bạn tạo thì chuỗi nó phải khác và bạn phải lấy theo chuỗi của bạn):
Trong Project Web Service, mở tập tin Web.config và thay thế bằng chuỗi trên:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_36.jpg)
– Sau đó tiến hành zip như sau:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_37.jpg)
– Ở hình trên là ta Ctrl+ A để chọn toàn bộ tập tin và thư mục/sau đó ta bấm chuột phải vào 1 tập tin bất kỳ trong thư mục chứa source code/ chọn Send to / chọn Compressed… như hình bên trên, nó phát sinh ra một file zip chứa toàn bộ source code trong này (ta chọn tập tin nào để bấm chuột phải cũng được).
– Sau khi có file zip, ta quay lại màn hình somee server để đưa source code lên như sau:
1- Chọn File Manager/ cửa sổ hiển thị lên chọn nút Upload như hình bên dưới:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_38.jpg)
Sau khi chọn nút Upload thì nó xuất hiện cho chúng ta nút Choose File để đưa file từ client lên Server/ ta chọn đúng file zip lúc này rồi bấm Upload and Unzip archives:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_39.jpg)
– Sau khi bấm Upload and unzip archives thì ta có kết quả như sau:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_40.jpg)
Bạn thấy đấy, toàn bộ source code đã được đưa lên server.
– Bây giờ ta tiến hành kiểm tra Webservice có chạy hay không như sau: "http://<tên subdomain>/<tên webservice>.asmx"
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/0h41_41.jpg)
Như vậy là đã thành công, bạn có thể tiến hành kiểm tra từng Service trong này.
PHẦN 4: TƯƠNG TÁC TỪ C# (desktop)
Từ WebProject ở trên, bạn tạo thêm 1 Windows Form Project để lấy dữ liệu từ Service đó như sau:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/1h45_0.jpg)
– Khi bấm Nút “Get List Catalog”: Chương trình sẽ triệu gọi web service (hàm getListCatalog) lưu trên
[http://testdrthanh.somee.com/mywebservice.asmx](http://testdrthanh.somee.com/mywebservice.asmx)và hiển thị vào ListBox (listbox_cate)
– Khi chọn Catalog bất kỳ trong listbox_cate thì sẽ hiển thị danh sách sản phẩm thuộc danh mục đang chọn vào listbox_product.
– Khi bấm nút “Delete Selected Product”: Sẽ xóa Product đang chọn trong listbox_product.
Sau đây là cách lấy dữ liệu từ webservice ở trên:
1- Bấm chuột phải vào Project/ chọn Add Service Reference:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/1h45_1.jpg)
2- Màn hình chọn WebService hiển thị ra như bên dưới đây:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/1h45_2.jpg)
3- Bấm chọn nút “Advanced“:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/1h45_3.jpg)
4- Ở màn hình trên ta chọn “Add Web Reference…“:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/1h45_4.jpg)
Mục số 1: Ta copy dán đường dẫn webservice vào
Mục số 2 đặt tên cho Web Reference rồi nhấn nút “Add Reference“.
Sau khi bạn nhấn nút “Add Reference” thì Project sẽ được thay đổi như sau:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/1h45_5.jpg)
File app.config tự động xuất hiện và bên trong nó có thông tin sau:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/1h45_6.jpg)
– Bây giờ ta tiến hành Coding cho các control trên giao diện như sau:
Mã:
[Chọn hết](#)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace TestWebService
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
bool isFinish = false;
com.somee.testdrthanh.mywebservice test = new com.somee.testdrthanh.mywebservice();
//Nút hiển thị danh sách Catalog
private void button1_Click(object sender, EventArgs e)
{
isFinish = false;
List<com.somee.testdrthanh.Catalog> listCate = test.getListCatalog().ToList();
listbox_cate.DataSource = listCate;
listbox_cate.DisplayMember="CateName";
listbox_cate.ValueMember="CateId";
isFinish = true;
}
//xử lý hiển thị danh sách sản phẩm theo danh mục
private void listbox_cate_SelectedIndexChanged(object sender, EventArgs e)
{
if (!isFinish) return;
if (listbox_cate.SelectedItem != null)
{
com.somee.testdrthanh.Catalog cate = listbox_cate.SelectedItem as com.somee.testdrthanh.Catalog;
List<com.somee.testdrthanh.Product> listProduct = test.getListProductByCatalogId(cate.CateId).ToList();
listbox_product.DataSource = listProduct;
listbox_product.DisplayMember = "ProductName";
listbox_product.ValueMember = "ProductId";
}
}
//xử lý nút xóa Product
private void button2_Click(object sender, EventArgs e)
{
if (listbox_product.SelectedItem == null)
return;
DialogResult ret = MessageBox.Show("Muốn xóa Product này hả?", "Xác nhận xóa", MessageBoxButtons.YesNo);
if (ret == DialogResult.Yes)
{
com.somee.testdrthanh.Product p = listbox_product.SelectedItem as com.somee.testdrthanh.Product;
bool isDelete= test.deleteProduct(p.ProductId);
if (isDelete)
{
com.somee.testdrthanh.Catalog cate = listbox_cate.SelectedItem as com.somee.testdrthanh.Catalog;
List<com.somee.testdrthanh.Product> listProduct = test.getListProductByCatalogId(cate.CateId).ToList();
listbox_product.DataSource = listProduct;
listbox_product.DisplayMember = "ProductName";
listbox_product.ValueMember = "ProductId";
}
else
{
MessageBox.Show("Không xóa được");
}
}
}
}
}
Khi thực thi thì ta có kết quả như sau:
![ Hình ảnh](https://duythanhcse.files.wordpress.com/2014/02/1h45_7.jpg)
Mình đã hướng dẫn chi tiết cách tạo Webservice, cách tạo CSDL, cách đưa dữ liệu lên Server somee, cách sử dụng LinQtoSQL, cách tương tác với Webservice...
Chúc các bạn thành công !!!
![Nháy mắt ;)](./images/smilies/003.gif)
![Nháy mắt ;)](./images/smilies/003.gif)
![Nháy mắt ;)](./images/smilies/003.gif)

Cache-Control: private, no-cache="set-cookie"

Set-Cookie: vbclub_sid=6ecab5ff0ab4affe1190911067a975bd; expires=Sun, 30-Jul-2017 16:45:30 GMT; path=/; domain=caulacbovb.com; HttpOnly


markdown:
[Nhận định](/nhan-dinh-bong-da.html) [Tường thuật](/tin-tuc/tuong-thuat-bong-da) [Tin tức bóng đá](/tin-tuc-bong-da.html) [Kết quả bóng đá](/ket-qua-bong-da.ikq) [Lịch thi đấu bóng đá](/lich-thi-dau-bong-da.hs) [Kèo bóng đá](/ty-le-keo-bong-da.html) [Bảng xếp hạng bóng đá](/bang-xep-hang-bong-da) [Video Clip](/video-clip-bong-da.html) [Ảnh bóng đá](/anh.abd) [Game dự đoán](/du-doan-bong-da.html)
## Thông tin đội bóng Hauerseter
|Thành lập|
|Quốc gia|
|Địa chỉ|
|Website|
|Tuổi trung bình||(Đang cập nhật)|
|Danh hiệu||(Đang cập nhật)|
|Số lượng fan||(Đang cập nhật)|
|Tags (Từ khóa)|
|Ngày||Giải đấu||Trận đấu||Kèo Châu Á||Tài xỉu||Châu Âu|
|22/04/2015
|
22:59
|
|
Quảng cáo của đối tác
[Premier Village Phú Quốc](http://lotuslandvn.com/du-an/premier-village-phu-quoc/) [xổ số mega](http://www.xosomega.com/) [soi cầu lô tô](http://soicauxoso.com/soi-cau-lo-to) [game online](http://lagavi.com/tin-tuc/game-online) [soi cầu đặc biệtt](http://soicauxoso.com/soi-cau-dac-biet) [xổ số mega 6/45](http://www.xosomega.com/645/) [mua ban nha dat](http://timdat.net/) [nha dat da nang](http://timdat.net/nha-dat-da-nang) [nha dat ha noi](http://timdat.net/nha-dat-ha-noi) [Premier Village Phú Quốc Resort](http://lotuslandvn.com/tag/premier-village-phu-quoc/) [xổ số tự chọn](http://www.xosomega.com/tag/xo-so-mega-645/) [nha dat hai duong](http://timdat.net/nha-dat-hai-duong) [nha dat hai phong](http://timdat.net/nha-dat-hai-phong) [livescore](http://m.ibongda.vn/livescore) [kết quả xổ số mega 6/45](http://www.xosomega.com/ket-qua/xo-so-mega-6-45/) [truc tiep xo so](http://wap.soicauxoso.com/) [dự đoán xổ số](http://soicauxoso.com/du-doan-xo-so) [thống kê xổ số](http://soicauxoso.com/thong-ke-xo-so) [Premier Residences Phú Quốc](http://lotuslandvn.com/premier-residences-phu-quoc/) [link sopcast](http://soccer188.net/link-sopcast) [premier league sopcast](http://soccer188.net/link-sopcast/english-premier-league.s1) [thiết bị định vị](http://thegioidinhvi.vn/thiet-bi-dinh-vi) [trực tiếp xổ số mega 6/45](http://www.xosomega.com/645/truc-tiep-ket-qua-xo-so-mega-645/) [thiết bị định vị ô tô](http://thegioidinhvi.vn/thiet-bi-dinh-vi/thiet-bi-dinh-vi-o-to) [trực tiếp xổ số](http://soicauxoso.com/xo-so-truc-tiep) [cuoi xuyen viet](http://youtube.mtube.vn/tag/cuoi+xuyen+viet+chung+ket+6) [giong hat viet 2015](http://youtube.mtube.vn/tag/giong+hat+viet+2015) [kết quả xổ số](http://soicauxoso.com/ket-qua-xo-so) [đại lý xổ số mega 6/45](http://www.xosomega.com/645/lien-he-lam-dai-ly-xo-so-tu-chon-vietlott/) [thach thuc danh hai](http://youtube.mtube.vn/tag/thach+thuc+danh+hai) [Cẩm nang Đầu Tư Premier Village Phu Quoc](http://lotuslandvn.com/cam-nang-dau-tu-du-an-premier-village-phu-quoc-resort/) [5s online](http://youtube.mtube.vn/tag/5s+online) [co dau 8 tuoi](http://youtube.mtube.vn/tag/co+dau+8+tuoi) [Dang ky M88](https://dangkycado.net)
[live scores](http://m.soccer188.net/)
[serie a sopcast](http://m.soccer188.net/sopcast)


text:
Phòng khám đa khoa Thế Giới
Nhập số điện thoại bạn bên dưới chuyên gia
chúng tôi sẽ gọi lại tư vấn miễn phí
Cam kết bảo mật thông tin


text:
Đăng nhập
Quên mật khẩu
Mở tài khoản
Đổi mật khẩu
Thông tin cá nhân
Đăng xuất
Giao dịch trực tuyến
Bảng giá đặt lệnh
Tổng quan tài khoản
Trạng thái tài sản
Mua bán cổ phiếu
Tra cứu quyền mua
Giao dịch tiền
Lãi lỗ danh mục
Báo cáo nợ
Trung tâm tư vấn
Cổ phiếu khuyến nghị
Sàng lọc cổ phiếu
Biểu đồ kỹ thuật
Thông tin thị trường
Tổng quan thị trường
Thống kê thị trường
Thông tin cổ phiếu
Lịch sự kiện
Tin tức
Cảnh báo đặc biệt
Chứng khoán phái sinh
Bảng giá phái sinh (sắp ra mắt)
Hợp đồng chứng khoán phái sinh
Kiến thức về chứng khoán phái sinh
Giao dịch phái sinh(sắp ra mắt)
Dịch vụ
Dịch vụ chứng khoán
Danh mục ký quỹ
Dịch vụ Ngân hàng đầu tư
Dịch vụ trái phiếu
Hướng dẫn nộp tiền
Hướng dẫn rút tiền
Câu hỏi thường gặp
Biểu phí Dịch vụ
Biểu mẫu
Về VNDIRECT
Tổng quan VNDIRECT
Tin VNDIRECT
Cơ hội nghề nghiệp
Văn hóa VNDIRECT
Quan hệ cổ đông
Mạng lưới chi nhánh
Công ty Cổ phần Sách - Thiết bị Bình Thuận (BST: HNX)
Lĩnh vực:
Dịch vụ tiêu dùng
> Ngành:
Bán lẻ
Doanh nghiệp
Quyền sở hữu
Biểu đồ kỹ thuật
Tin doanh nghiệp
Báo cáo tài chính
Thống kê thị trường
Phản hồi về dữ liệu
Tổng quan
Hồ sơ doanh nghiệp
Cáo bạch & BCTC
Chỉ tiêu kế hoạch
1
2
3
4
5
...
>
17/01/2017
BST: Báo cáo tài chính quý 4/2016
(HNX)
Tải xuống
10/10/2016
BST: Báo cáo tài chính quý 3/2016
(HNX)
Tải xuống
15/08/2016
BST: Báo cáo tài chính bán niên năm 2016
(HNX)
Tải xuống
29/07/2016
BST: Báo cáo tài chính quý 2/2016
(HNX)
Tải xuống
08/06/2016
BST: Công bố thông tin ký Hợp đồng kiểm toán Báo cáo tài chính năm 2016
(HNX)
Tải xuống
24/03/2016
BST: Báo cáo tài chính năm 2015
(HNX)
Tải xuống
19/01/2016
BST: Báo cáo tài chính quý 4/2015
(HNX)
Tải xuống
19/10/2015
BST: Báo cáo tài chính quý 3/2015
(HNX)
Tải xuống
21/08/2015
BST: Báo cáo tài chính Q2.2015
(HNX)
05/06/2015
BST: Báo cáo tài chính Q1.2015
(HNX)
Hotline: 1900 5454 09 - 043.941.0622
Email: support@vndirect.com.vn
Mạng lưới chi nhánh
Công cụ giao dịch
Giao dịch trực tuyến
Mobile Trading
Bảng giá thông minh
Thông tin tư vấn
Cổ phiếu khuyến nghị
Biểu đồ kỹ thuật
DataFeed
Hướng dẫn
Hướng dẫn lệnh điều kiện
Đăng ký và sử dụng OTP
Hỏi đáp
Chat với chúng tôi
Mở tài khoản

Strict-Transport-Security: max-age=31536000; includeSubDomains

Content-Language: vn


text:
Kuris chào bán máy cắt đa lớp Texcutt
3025/3055/3070 với bàn phối hàng tự động...etc
* Thông tin bắt buộc
Meyer Textilmaschinen GmbH

Content-Type: text/html

Server: Apache

Accept-Ranges: bytes


markdown:
[Nhận định](/nhan-dinh-bong-da.html) [Tường thuật](/tin-tuc/tuong-thuat-bong-da) [Tin tức bóng đá](/tin-tuc-bong-da.html) [Kết quả bóng đá](/ket-qua-bong-da.ikq) [Lịch thi đấu bóng đá](/lich-thi-dau-bong-da.hs) [Kèo bóng đá](/ty-le-keo-bong-da.html) [Bảng xếp hạng bóng đá](/bang-xep-hang-bong-da) [Video Clip](/video-clip-bong-da.html) [Ảnh bóng đá](/anh.abd) [Game dự đoán](/du-doan-bong-da.html)
## Thông tin cầu thủ Andre Martins
|Tên||Andre Martins|
|Quốc tịch||Portugal|
|Số áo||28|
|Vị trí||Tiền vệ|
|Cân nặng||63 kg|
|Chiều cao||1.69 m|
|Tags (Từ khóa)|
Quảng cáo của đối tác
[Premier Village Phú Quốc](http://lotuslandvn.com/du-an/premier-village-phu-quoc/) [xổ số mega](http://www.xosomega.com/) [soi cầu lô tô](http://soicauxoso.com/soi-cau-lo-to) [game online](http://lagavi.com/tin-tuc/game-online) [soi cầu đặc biệtt](http://soicauxoso.com/soi-cau-dac-biet) [xổ số mega 6/45](http://www.xosomega.com/645/) [mua ban nha dat](http://timdat.net/) [nha dat da nang](http://timdat.net/nha-dat-da-nang) [nha dat ha noi](http://timdat.net/nha-dat-ha-noi) [Premier Village Phú Quốc Resort](http://lotuslandvn.com/tag/premier-village-phu-quoc/) [xổ số tự chọn](http://www.xosomega.com/tag/xo-so-mega-645/) [nha dat hai duong](http://timdat.net/nha-dat-hai-duong) [nha dat hai phong](http://timdat.net/nha-dat-hai-phong) [livescore](http://m.ibongda.vn/livescore) [kết quả xổ số mega 6/45](http://www.xosomega.com/ket-qua/xo-so-mega-6-45/) [truc tiep xo so](http://wap.soicauxoso.com/) [dự đoán xổ số](http://soicauxoso.com/du-doan-xo-so) [thống kê xổ số](http://soicauxoso.com/thong-ke-xo-so) [Premier Residences Phú Quốc](http://lotuslandvn.com/premier-residences-phu-quoc/) [link sopcast](http://soccer188.net/link-sopcast) [premier league sopcast](http://soccer188.net/link-sopcast/english-premier-league.s1) [thiết bị định vị](http://thegioidinhvi.vn/thiet-bi-dinh-vi) [trực tiếp xổ số mega 6/45](http://www.xosomega.com/645/truc-tiep-ket-qua-xo-so-mega-645/) [thiết bị định vị ô tô](http://thegioidinhvi.vn/thiet-bi-dinh-vi/thiet-bi-dinh-vi-o-to) [trực tiếp xổ số](http://soicauxoso.com/xo-so-truc-tiep) [cuoi xuyen viet](http://youtube.mtube.vn/tag/cuoi+xuyen+viet+chung+ket+6) [giong hat viet 2015](http://youtube.mtube.vn/tag/giong+hat+viet+2015) [kết quả xổ số](http://soicauxoso.com/ket-qua-xo-so) [đại lý xổ số mega 6/45](http://www.xosomega.com/645/lien-he-lam-dai-ly-xo-so-tu-chon-vietlott/) [thach thuc danh hai](http://youtube.mtube.vn/tag/thach+thuc+danh+hai) [Cẩm nang Đầu Tư Premier Village Phu Quoc](http://lotuslandvn.com/cam-nang-dau-tu-du-an-premier-village-phu-quoc-resort/) [5s online](http://youtube.mtube.vn/tag/5s+online) [co dau 8 tuoi](http://youtube.mtube.vn/tag/co+dau+8+tuoi) [Dang ky M88](https://dangkycado.net)
[live scores](http://m.soccer188.net/)
[serie a sopcast](http://m.soccer188.net/sopcast)