text:
TÌM HIỂU VỀ WEBSERVICE & SỬ DỤNG TRONG C#
Đã gửi: CN 29/05/2016 4:57 pm
Hi các bạn, lâu chưa vào 4rum. Hôm nay, sau 1 thời gian nghiên cứu, mình sẽ hướng dẫn các bạn sử dụng Web Service trong Windows với ngôn ngữ là C#
PHẦN 1: TÌM HIỂU SƠ VỀ WEB SERVICE
(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:
– 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.
– "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:
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 !!!
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:
### TÌM HIỂU VỀ WEBSERVICE & SỬ DỤNG TRONG C#
Đã gửi:
**CN 29/05/2016 4:57 pm**
Hi các bạn, lâu chưa vào 4rum. Hôm nay, sau 1 thời gian nghiên cứu, mình sẽ hướng dẫn các bạn sử dụng Web Service trong Windows với ngôn ngữ là C#
PHẦN 1: TÌM HIỂU SƠ VỀ WEB SERVICE
(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:
![ 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:
Mã:
– 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
– 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.
– "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
– 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ã:
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)
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)

Set-Cookie: vbclub_sid=74663871eff5b8838e5d65caa1792f6b; expires=Tue, 28-Feb-2017 07:24:29 GMT; path=/; domain=caulacbovb.com; HttpOnly

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

X-Powered-By-Plesk: PleskWin


text:
-
Dismiss Notice
[THÔNG BÁO] TẤT CẢ NHỮNG BÀI VIẾT ĐĂNG KHÔNG ĐÚNG CHUYÊN MỤC SẼ BỊ BAN NIK VÀ XÓA TOÀN BỘ POST, CÁC BÀI VIẾT NẾU KHÔNG CÓ BOX PHÙ HỢP ĐỂ POST THÌ CÓ THỂ POST VÀO 2 CHUYÊN MỤC CUỐI DIỄN ĐÀN LÀ "BACKLINK FREE" VÀ "CÁC VẤN ĐỀ KHÁC"
- Dismiss Notice
So sánh iPhone 6, iPhone 6 Plus và iPhone 5S
Thảo luận trong 'Backlink Free' bắt đầu bởi khottabit, 12 Tháng chín 2014.

markdown:
[](http://choa37.org/forums/tin-tuc-que-nha.9/) ![ ](/na.png)
![ ](/na.png)
[](http://choa37.org/forums/dan-choa-3-mien.14/) ![ ](/slna.png)
![ ](/slna.png)
[](http://choa37.org/forums/co-dong-vien-slna.101/) ![ ](/lgna.png)
![ ](/lgna.png)
-
[THÔNG BÁO] TẤT CẢ NHỮNG BÀI VIẾT ĐĂNG KHÔNG ĐÚNG CHUYÊN MỤC SẼ BỊ BAN NIK VÀ XÓA TOÀN BỘ POST, CÁC BÀI VIẾT NẾU KHÔNG CÓ BOX PHÙ HỢP ĐỂ POST THÌ CÓ THỂ POST VÀO 2 CHUYÊN MỤC CUỐI DIỄN ĐÀN LÀ "BACKLINK FREE" VÀ "CÁC VẤN ĐỀ KHÁC" [Dismiss Notice](account/dismiss-notice?notice_id=1)
-
[Dismiss Notice](account/dismiss-notice?notice_id=7)
# So sánh iPhone 6, iPhone 6 Plus và iPhone 5S
Thảo luận trong '
[Backlink Free](forums/backlink-free.57/)' bắt đầu bởi [khottabit](members/khottabit.4473/), [12 Tháng chín 2014](threads/so-sanh-iphone-6-iphone-6-plus-va-iphone-5s.13915/).

WARC-Type: response

Content-Type: application/http; msgtype=response

Cache-control: private, max-age=0

Connection: close

Server: Apache

X-Frame-Options: SAMEORIGIN

Vary: Accept-Encoding

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


text: Mặc nhiều lớp là một biện pháp hiệu quả để tránh rét, nhưng điều cần thiết là phải mặc sao cho đúng và không phản tác dụng làm bé quá lạnh hoặc quá nóng sẽ rất dễ khiến bé ốm. Dưới đây là một số cách kết hợp quần áo để bé mặc thoải mái và ấm áp trong những ngày mùa đông lạnh giá mà các bố mẹ có thể tham khảo. * Click vào ảnh để xem kích thước lớn. Nguồn: afamily

Cache-control: public


text:
Nếu bạn là một người thích theo dõi tin tức , hoặc có tham gia vào các Page , Group Anime , Manga thì chắc hẳn cái tên Ellen Baker không còn quá xa lạ nhỉ . Và gần đây cô giáo dạy tiếng anh này thật sự đã làm nên một cơn sốt mới với cộng đồng Yêu thích manga – anime.
Không chỉ ở Việt Nam mà ở Nhật cô cũng trở thành một hiện tượng mới lạ , Khi trên các Trang mạng xã hội như Twitter ,Pixiv gần như bị nhấn chìm bởi cơn bão ảnh và Fanart của Baker .
Và có lẽ bức ảnh khiến nhiều fan quan tâm nhất chính là bức ảnh này, đã có rất nhiều tranh cãi xảy ra khau khi xem bức ảnh này:
Thật sự thì trí tưởng tượng của các fan đã vượt quá cả sức kì vọng của tui =))

markdown:
**Nếu bạn là một người thích theo dõi tin tức , hoặc có tham gia vào các Page , Group Anime , Manga thì chắc hẳn cái tên Ellen Baker không còn quá xa lạ nhỉ . Và gần đây cô giáo dạy tiếng anh này thật sự đã làm nên một cơn sốt mới với cộng đồng Yêu thích manga – anime.**
Không chỉ ở Việt Nam mà ở Nhật cô cũng trở thành một hiện tượng mới lạ , Khi trên các Trang mạng xã hội như Twitter ,Pixiv gần như bị nhấn chìm bởi cơn bão ảnh và Fanart của Baker .
Và có lẽ bức ảnh khiến nhiều fan quan tâm nhất chính là bức ảnh này, đã có rất nhiều tranh cãi xảy ra khau khi xem bức ảnh này:
Thật sự thì trí tưởng tượng của các fan đã vượt quá cả sức kì vọng của tui =))

WARC-Truncated: length

Server: nginx

Vary: Cookie

X-XSS-Protection: 1; mode=block

X-Content-Type-Options: nosniff


text:
Cửa INOX mẫu 18 , Cửa INOX mẫu đẹp Fuco
Cửa INOX mẫu 18 , Cửa INOX mẫu đẹp Fuco
FUCO TẠI HÀ NỘI
Văn phòng: Số nhà 56/95 – Phố Nam Dư – Q.Hoàng Mai – Hà Nội
Xưởng SX: Số nhà 54 – Ngõ 95 – Phố Nam Dư – P.Lĩnh Nam – Q.Hoàng Mai – Hà Nội
(cuối ngõ 649 Lĩnh Nam, cách cầu Thanh Trì 200m)Tel: (04)62.840.699 Fax: (04)62.840.698 Hotline: 0914.210.515
Xưởng INOX, Sắt: Số nhà 87 - Ngõ 110 - Phố Nam Dư - P.Lĩnh Nam - Q.Hoàng Mai - Hà Nội
( Cuối ngõ 110, Phố Nam Dư, Quận Hoàng Mai, Hà Nội )FUCO TẠI THÁI NGUYÊNXưởng SX 1: 399 Dương Tự Minh -TP. Thái Nguyên.Xưởng SX 2: 462 Dương Tự Minh - P. Quán Triều – TP. Thái Nguyên. Tel: 0280.370.8789 0947888733 Hotline: 0967.217.111
FUCO TẠI HỒ CHÍ MINH(SÀI GÒN)
VPGD1 : 68 Quảng Hiền, phường 11, quận Tân Bình, Tp. HCM
VPGD 2 : E3/20C đường Thới Hòa, Vĩnh Lộc A, huyện. Bình Chánh, Tp. HCM
Xưởng SX : Đường số 7 (nối dài), KCN Vĩnh Lộc, huyện Bình Chánh, Tp. HCM
Email: cuaxepcaocap@gmail.com
Email: fucohn@gmail.com
© 2016 Cửa xếp Fuco All rights reserved.

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

Pragma: no-cache


text:
- Video - Clip
- Tin tức
- Thế giới
- Thể thao
- Pháp luật
- Kinh tế
- Nhà nông
- Văn hóa
- Giải trí
- Du lịch
- Bạn đọc
- Video - Clip
- Tin tức
- Thế giới
- Thể thao
- Pháp luật
- Kinh tế
- Nhà nông
- Văn hóa
- Giải trí
- Sống trẻ
- Đẹp
- Gia đình
- Công nghệ
- Du lịch
- Ô tô - Xe máy
- Chuyện lạ
- Làng cười
- Bạn đọc
- Doanh nghiệp
- Trang chủ Dân Việt

markdown: [Video - Clip](/video-clip/) [Tin tức](/tin-tuc/) [Thế giới](/the-gioi/) [Thể thao](/the-thao/) [Pháp luật](/phap-luat/) [Kinh tế](/kinh-te/) [Nhà nông](/nha-nong/) [Văn hóa](/van-hoa/) [Giải trí](/giai-tri/) [Du lịch](/du-lich/) [Bạn đọc](/ban-doc/) [Video - Clip](/video-clip/) [Tin tức](/tin-tuc/) [Thế giới](/the-gioi/) [Thể thao](/the-thao/) [Pháp luật](/phap-luat/) [Kinh tế](/kinh-te/) [Nhà nông](/nha-nong/) [Văn hóa](/van-hoa/) [Giải trí](/giai-tri/) [Sống trẻ](/song-tre/) [Đẹp](/dep/) [Gia đình](/gia-dinh/) [Công nghệ](/cong-nghe/) [Du lịch](/du-lich/) [Ô tô - Xe máy](/o-to-xe-may/) [Chuyện lạ](/chuyen-la/) [Làng cười](/cuoi/) [Bạn đọc](/ban-doc/) [Doanh nghiệp](/doanh-nghiep/) [Trang chủ Dân Việt](/trang-chu-dan-viet/)

X-Cache: QuickCache vv2.1.1rc1 - file

Vary: Accept-Encoding,User-Agent

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


text:
Latest topics
Most Viewed Topics
Thống KêHiện có 62 người đang truy cập Diễn Đàn, gồm: 0 Thành viên, 0 Thành viên ẩn danh và 62 Khách viếng thăm :: 2 Bots
Không
Số người truy cập cùng lúc nhiều nhất là 117 người, vào ngày Tue May 17, 2016 10:49 pm
Top posting users this month
Cho thuê chung cư 88 Láng hạ
Trang 1 trong tổng số 1 trang • Share •
Cho thuê chung cư 88 Láng hạ
Cho thuê chung cư 88 Láng hạ
Chúng tôi chuyên phân phối bán và cho thuê các căn hộ tại chung cư 88 Láng Hạ - Sky City Tower với đủ loại diện tích
-Loại 2 phòng ngủ, các loại diện tích101m2-102.5m2-108m2-112 m2.
Giá bán chỉ từ 2250$/m2, giá thuê chỉ từ 1000$/tháng.
-Loại 3 phòng ngủ, các loại diện tích 139m2-144m2-145m2-172 m2.
Giá bán chỉ từ 2200$/m2, giá thuê chỉ từ 1100$/tháng .
Quý khách có nhu cầu mua vui lòng liên hệ để mua được căn hộ hợp lý nhất
Mr Hải Đăng 0904 702 909 - Sàn giao dịch bất động sản Đại Hưng
Địa chỉ: Phòng 206 B6C Nam Trung yên
website: ban chung cu 88 lang ha
Chúng tôi chuyên phân phối bán và cho thuê các căn hộ tại chung cư 88 Láng Hạ - Sky City Tower với đủ loại diện tích
-Loại 2 phòng ngủ, các loại diện tích101m2-102.5m2-108m2-112 m2.
Giá bán chỉ từ 2250$/m2, giá thuê chỉ từ 1000$/tháng.
-Loại 3 phòng ngủ, các loại diện tích 139m2-144m2-145m2-172 m2.
Giá bán chỉ từ 2200$/m2, giá thuê chỉ từ 1100$/tháng .
Quý khách có nhu cầu mua vui lòng liên hệ để mua được căn hộ hợp lý nhất
Mr Hải Đăng 0904 702 909 - Sàn giao dịch bất động sản Đại Hưng
Địa chỉ: Phòng 206 B6C Nam Trung yên
website: ban chung cu 88 lang ha
chothuechungcu
- Tổng số bài gửi : 94
Join date : 21/05/2011
-
Trang 1 trong tổng số 1 trang
Permissions in this forum:Bạn không có quyền trả lời bài viết
Today at 10:46 am by leduy8294
» không gian mở cho biệt thự của bạn
Today at 9:38 am by leduy8294
» ngôi nhà có phòng khách ấn tượng
Yesterday at 10:59 am by leduy8294
» căn nhà lầu 12 ấn tượng
Yesterday at 9:45 am by leduy8294
» █ TL Đại việt(CS) Open CMC Truyền Thuyết hồi 7h30 tối T5 ngày 23/2/17 - Test
Sun Feb 19, 2017 4:59 pm by rungtruongson
» █Thiên long Hoa Thiên Cốc(Cày Cuốc)- Open CMC Thiên Ma: 10H00 sáng CN 19/2/17
Sat Feb 18, 2017 7:44 am by rungtruongson
» █Kiếm thế Hàn Băng Tuyết open: 2h00 chiều T7 ngày 18/2/2017 – Sân chơi cho gam
Sat Feb 18, 2017 5:58 am by rungtruongson
» Bán gấp nhà phân lô Trần Quang Diệu 43m2 4 tầng MT 4m 8.5 tỷ TL
Fri Feb 17, 2017 9:09 am by hpld91
» căn hộ nhỏ nhưng mang lại cảm giác tự do
Thu Feb 16, 2017 10:08 am by leduy8294
» Nên cho người Việt hay người nước ngoài thuê nhà.
Wed Feb 15, 2017 4:27 pm by rentalpropertyhanoi
» Cho người nước ngoài thuê nhà thu nhập 1000usd mỗi tháng
Tue Feb 14, 2017 4:33 pm by rentalpropertyhanoi
» Bán căn CT2A Chung cư tái định cư 36 Hoàng cầu tầng 11/17 61m2 giá 28.5 triệu/m2
Tue Feb 14, 2017 11:24 am by hpld91
» ngôi nhà 26m2 nhưng thiết kệ siêu rộng
Mon Feb 13, 2017 10:41 am by leduy8294
» biến căn nhà 40m2 thành căn hộ cho thuê
Mon Feb 13, 2017 9:23 am by leduy8294
» Mời tham gia nhóm Trao đổi Link trên Facebook
Sun Feb 12, 2017 6:54 pm by admin
» Thanh lý đàn ghi-tar đẹp
Sun Feb 12, 2017 6:47 pm by admin
» Thanh lý chảo inox dùng bếp từ cho bếp nhà hàng
Sun Feb 12, 2017 6:46 pm by admin
» Thanh lý 2 cái usb dcom 3g của Viet tel
Sun Feb 12, 2017 6:44 pm by admin
» ngôi nhà nhỏ hiện đại giữa đồng xanh
Sat Feb 11, 2017 10:13 am by leduy8294
» ngôi nhà được thiết kế hiện đại
Sat Feb 11, 2017 9:14 am by leduy8294
» cải tạo nhà kho cũ thành ngôi nhà đẹp
Fri Feb 10, 2017 10:41 am by leduy8294
» ngôi nhà nhỏ di động khiến nhiều người mê mẫn
Fri Feb 10, 2017 9:20 am by leduy8294
» ngôi nhà có sân vườn rộng 58m2
Thu Feb 09, 2017 10:33 am by leduy8294
» ngắm nhìn vườn hoa đẹp trong sân nhà
Thu Feb 09, 2017 9:14 am by leduy8294
» những ý tưởng hay cho bàn ăn căn bếp nhà bạn
Tue Feb 07, 2017 11:14 am by leduy8294
» những ngôi làng đẹp nhất thế giới
Tue Feb 07, 2017 9:59 am by leduy8294
» Bạn đã biết làm trắng da toàn thân với top white chưa
Mon Feb 06, 2017 3:40 pm by phuonganhit1606@gmail.com
» Kinh nghiệm cá độ online từ A tới Z cho anh em !
Mon Feb 06, 2017 3:28 pm by duongdacton
» những ngôi nhà nhỏ nhiều người muốn sở hữu
Mon Feb 06, 2017 10:11 am by leduy8294
» █Thiên Long VÔ SONG(Cày Cuốc)- OpenCMC PK hồi 7H30 tối T4 8/2/17-Test game 7h3
Mon Feb 06, 2017 9:43 am by rungtruongson
» tư vấn cải tạo căn hộ 82m2 cho 4 người ở
Mon Feb 06, 2017 8:49 am by leduy8294
» █(Kiếm Thế Thiết Công) - OPEN 7h30 tối T4 ngày 8/2/2017 - Chơi để nhớ - Miễ phí
Sat Feb 04, 2017 10:05 am by rungtruongson
» █Hiệp Khách Thương Đao Open: 10h00 sáng CN ngày 5/2/17 - Test game: 7h30 tối T4
Thu Feb 02, 2017 11:17 am by rungtruongson
» █Kiếm thế Tuyệt Thế open: 10h00 sáng CN ngày 5/2/2017 – Game miễn phí
Thu Feb 02, 2017 11:14 am by rungtruongson
» những kiểu bàn cafe biến thành bàn ăn nhanh chóng
Thu Feb 02, 2017 8:26 am by leduy8294
» biến tổ ấm thành căn hộ thông minh
Wed Feb 01, 2017 7:59 am by leduy8294
» thiết kế phòng tắm phù hợp với kích thước
Thu Jan 26, 2017 7:31 am by leduy8294
» giường canopi sang trọng
Wed Jan 25, 2017 8:10 am by leduy8294
» thay đổi màu sơn thay đổi không gian căn phòng
Tue Jan 24, 2017 8:31 am by leduy8294
» Loại bỏ nám da hệu quả cùng top white
Mon Jan 23, 2017 4:51 pm by phuonganhit1606@gmail.com
» 8 Ý Tưởng Trang Trí Sáng Tạo Cho Trần Phòng Ăn
Mon Jan 23, 2017 4:16 pm by tuminhvo379
» sàn gổ ép trang trí nhà vừa rẻ vừa đẹp
Mon Jan 23, 2017 9:29 am by leduy8294
» Mẹo Hay Để Vệ Sinh Bàn Trà Phòng Khách
Mon Jan 23, 2017 8:52 am by tuminhvo379
» những kiểu giấy dán tường giúp phòng tắm đẹp hơn
Mon Jan 23, 2017 8:23 am by leduy8294
» Những Thiết Kế Ghế Sofa Màu Xám Đầy Mê Hoặc
Sat Jan 21, 2017 8:14 am by tuminhvo379
» Những Mẫu Đèn Chùm Tạo Sự Lung Linh Cho Phòng Khách
Fri Jan 20, 2017 4:49 pm by tuminhvo379
» những cách trang trí nhà đẹp nhưng không phù hợp với việt nam
Fri Jan 20, 2017 10:57 am by leduy8294
» ngôi nhà 3 tầng bằng đất nung
Fri Jan 20, 2017 9:31 am by leduy8294
» Trang Trí Nhà Bằng Thảm Trải Sàn Mùa Xuân
Fri Jan 20, 2017 9:12 am by tuminhvo379
» [Thu mua] xác iPhone 6,6+ iphone 7,iphone 8 giá cao tphcm
Thu Jan 19, 2017 10:17 pm by locgame

markdown:
Latest topics
Most Viewed Topics
Thống KêHiện có
**62**người đang truy cập Diễn Đàn, gồm: **0**Thành viên, **0**Thành viên ẩn danh và **62**Khách viếng thăm :: 2 Bots
Không
Số người truy cập cùng lúc nhiều nhất là
**117**người, vào ngày Tue May 17, 2016 10:49 pm
Top posting users this month
![]()
![]()
[rungtruongson](/u1007)
![]()
![]()
**admin**
![]()
![]()
[rentalpropertyhanoi](/u1553)
![]()
![]()
[hpld91](/u1154)
![]()
![]()
[phuonganhit1606@gmail.com](/u1398)
![]()
![]()
[duongdacton](/u1551)
![]()
![]()
[Cho thuê chung cư 88 Láng hạ](/t16812-topic)
Trang
**1**trong tổng số **1**trang • [Share](#)•
[Cho thuê chung cư 88 Láng hạ](/t16812-topic#18885)
Cho thuê chung cư 88 Láng hạ
Chúng tôi chuyên phân phối bán và cho thuê các căn hộ tại chung cư 88 Láng Hạ - Sky City Tower với đủ loại diện tích
-Loại 2 phòng ngủ, các loại diện tích101m2-102.5m2-108m2-112 m2.
Giá bán chỉ từ 2250$/m2, giá thuê chỉ từ 1000$/tháng.
-Loại 3 phòng ngủ, các loại diện tích 139m2-144m2-145m2-172 m2.
Giá bán chỉ từ 2200$/m2, giá thuê chỉ từ 1100$/tháng .
Quý khách có nhu cầu mua vui lòng liên hệ để mua được căn hộ hợp lý nhất
Mr Hải Đăng 0904 702 909 - Sàn giao dịch bất động sản Đại Hưng
Địa chỉ: Phòng 206 B6C Nam Trung yên
website: ban chung cu 88 lang ha
Chúng tôi chuyên phân phối bán và cho thuê các căn hộ tại chung cư 88 Láng Hạ - Sky City Tower với đủ loại diện tích
-Loại 2 phòng ngủ, các loại diện tích101m2-102.5m2-108m2-112 m2.
Giá bán chỉ từ 2250$/m2, giá thuê chỉ từ 1000$/tháng.
-Loại 3 phòng ngủ, các loại diện tích 139m2-144m2-145m2-172 m2.
Giá bán chỉ từ 2200$/m2, giá thuê chỉ từ 1100$/tháng .
Quý khách có nhu cầu mua vui lòng liên hệ để mua được căn hộ hợp lý nhất
Mr Hải Đăng 0904 702 909 - Sàn giao dịch bất động sản Đại Hưng
Địa chỉ: Phòng 206 B6C Nam Trung yên
website: ban chung cu 88 lang ha
**chothuechungcu**
- Tổng số bài gửi : 94
Join date : 21/05/2011
-
Trang
**1**trong tổng số **1**trang
Bạn
**Permissions in this forum:** **không có quyền**trả lời bài viết
» không gian mở cho biệt thự của bạn
» ngôi nhà có phòng khách ấn tượng
» căn nhà lầu 12 ấn tượng
» █ TL Đại việt(CS) Open CMC Truyền Thuyết hồi 7h30 tối T5 ngày 23/2/17 - Test
» █Thiên long Hoa Thiên Cốc(Cày Cuốc)- Open CMC Thiên Ma: 10H00 sáng CN 19/2/17
» █Kiếm thế Hàn Băng Tuyết open: 2h00 chiều T7 ngày 18/2/2017 – Sân chơi cho gam
» Bán gấp nhà phân lô Trần Quang Diệu 43m2 4 tầng MT 4m 8.5 tỷ TL
» căn hộ nhỏ nhưng mang lại cảm giác tự do
» Nên cho người Việt hay người nước ngoài thuê nhà.
» Cho người nước ngoài thuê nhà thu nhập 1000usd mỗi tháng
» Bán căn CT2A Chung cư tái định cư 36 Hoàng cầu tầng 11/17 61m2 giá 28.5 triệu/m2
» ngôi nhà 26m2 nhưng thiết kệ siêu rộng
» biến căn nhà 40m2 thành căn hộ cho thuê
» Mời tham gia nhóm Trao đổi Link trên Facebook
admin
» Thanh lý đàn ghi-tar đẹp
admin
» Thanh lý chảo inox dùng bếp từ cho bếp nhà hàng
admin
» Thanh lý 2 cái usb dcom 3g của Viet tel
admin
» ngôi nhà nhỏ hiện đại giữa đồng xanh
» ngôi nhà được thiết kế hiện đại
» cải tạo nhà kho cũ thành ngôi nhà đẹp
» ngôi nhà nhỏ di động khiến nhiều người mê mẫn
» ngôi nhà có sân vườn rộng 58m2
» ngắm nhìn vườn hoa đẹp trong sân nhà
» những ý tưởng hay cho bàn ăn căn bếp nhà bạn
» những ngôi làng đẹp nhất thế giới
» Bạn đã biết làm trắng da toàn thân với top white chưa
» Kinh nghiệm cá độ online từ A tới Z cho anh em !
» những ngôi nhà nhỏ nhiều người muốn sở hữu
» █Thiên Long VÔ SONG(Cày Cuốc)- OpenCMC PK hồi 7H30 tối T4 8/2/17-Test game 7h3
» tư vấn cải tạo căn hộ 82m2 cho 4 người ở
» █(Kiếm Thế Thiết Công) - OPEN 7h30 tối T4 ngày 8/2/2017 - Chơi để nhớ - Miễ phí
» █Hiệp Khách Thương Đao Open: 10h00 sáng CN ngày 5/2/17 - Test game: 7h30 tối T4
» █Kiếm thế Tuyệt Thế open: 10h00 sáng CN ngày 5/2/2017 – Game miễn phí
» những kiểu bàn cafe biến thành bàn ăn nhanh chóng
» biến tổ ấm thành căn hộ thông minh
» thiết kế phòng tắm phù hợp với kích thước
» giường canopi sang trọng
» thay đổi màu sơn thay đổi không gian căn phòng
» Loại bỏ nám da hệu quả cùng top white
» 8 Ý Tưởng Trang Trí Sáng Tạo Cho Trần Phòng Ăn
» sàn gổ ép trang trí nhà vừa rẻ vừa đẹp
» Mẹo Hay Để Vệ Sinh Bàn Trà Phòng Khách
» những kiểu giấy dán tường giúp phòng tắm đẹp hơn
» Những Thiết Kế Ghế Sofa Màu Xám Đầy Mê Hoặc
» Những Mẫu Đèn Chùm Tạo Sự Lung Linh Cho Phòng Khách
» những cách trang trí nhà đẹp nhưng không phù hợp với việt nam
» ngôi nhà 3 tầng bằng đất nung
» Trang Trí Nhà Bằng Thảm Trải Sàn Mùa Xuân
» [Thu mua] xác iPhone 6,6+ iphone 7,iphone 8 giá cao tphcm

Cache-Control: post-check=0, pre-check=0

Vary: User-Agent

P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"

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


text:
Latest topics
Most Viewed Topics
Thống KêHiện có 62 người đang truy cập Diễn Đàn, gồm: 0 Thành viên, 0 Thành viên ẩn danh và 62 Khách viếng thăm :: 2 Bots
Không
Số người truy cập cùng lúc nhiều nhất là 117 người, vào ngày Tue May 17, 2016 10:49 pm
Top posting users this month
cách làm món thịt bò xào kiểu mông cổ
Trang 1 trong tổng số 1 trang • Share •
cách làm món thịt bò xào kiểu mông cổ
Nguyên liệu hồn đả khuơ cách làm bột trà xanh giết thịt làm lơ Mông Cổ biếu 4-5 người tợp:
- 600g khung làm ngơ năng giết thịt thăn (giết lừ Mông Cổ)
- 1 quả trứng
- 1 muỗngcách làm riêu cua canh bột ngô
- 1 cùi dìa cà phê ô dù mè
- 4 cây hành lá
- 250g bắp cách làm Miến trộn dạ dày
- 2-3 tép tỏi
- 3 muỗng cô nước sốt hoisin
- 1 thìa canh nác tương
- 1 thìa cô rượu gạo Trung Quốc
- 2 cùi dìa cà phê giấm gạo
- ¼ cùi dìa cà phê tương ớt
- đàng, muối, ơ chén
Cách làm hoa làm thịt bò Mông Cổ biếu 4-5 người tớp:
Bước 1: sơ chế nguyên liệu hồn
làm thịt phớt tỉnh thái khoảnh vuông
- khuông phớt năng làm thịt thăn lừ, cạc bạn tâu vách những mảnh vuông vừa xơi, nếu như giàu mỡ thời danh thiếp bạn nhớ lọc trưởng trớt nhá.
- Trứng gà đập ra ngốn và lọc riêng lấy tròng trắng
- Tỏi lột xác vỏ rồi băm nhỏ
tỏi vằm rỏ
- hành lá kí thành những đoạn xéo trường học chỉ quãng 2- 2,5 cm
- bắp bao tử rửa sạch, nhiều dạng cắt đả kép phải bắp trường học
lau khô khan bắp bào tử
Sau đó, rửa ngô kè nác siêu rồi thấm khô khan kè khăn giấy.
Bước 2: cạc bước thực hiện huơ giết mổ ngơ Mông Cổ
- đầu tiên, chúng min sẽ pha chế phần nác sốt bột bắp ướp giết thịt lờ.
pha chế nác bột bắp
- cạc bạn chuẩn bị một cái tọng tô lớn rồi biếu ra các nguyên liệu chừng sau: tròng trắng trứng gà, bột bắp, ô dù mè và ½ cùi dìa cà phê muối.
- Dùng muỗng ngào thiệt đều lên.
ướp giết thịt phớt tỉnh
- Sau đấy, cho thịt bò vào tớp nước hổ lốn bột ngô, nhao thiệt đều và ướp giết thịt lừ trong kiếm thời kì trường đoản cú 30p – 40p đặt làm thịt bơ thẩm gia vì.
- nối theo, chúng ta sẽ pha chế nối một loại nác sốt hạng hai.
pha chế nước sốt
- danh thiếp bạn cũng lấy đơn cái tợp tô to rồi biếu ra danh thiếp nguyên liệu hồn gồm: nác sốt hoisin, nước tương, rượu gạo Trung Quốc, giấm gạo và tương ớt.
- Sau đấy, Dùng cùi dìa nhao thực đều danh thiếp loại nác sốt lên.
- Bước nối theo, chúng mỗ sẽ chiên giết mổ phớt tỉnh.
danh thiếp bạn bắc đơn cái chảo lên bếp rồi tặng dù măm ra đả rét.
rán giết thịt lơ
chờ tới lát ô dù thang sôi, biếu làm thịt ngơ vào chiên, điều chỉnh lửa ở mức nhỡ hay là cụm từ bé.
cừu giết làm lơ cho đến nhút nhát hai bình diện mẩu thịt năng sườn có màu vàng nâu thì vớt ra ngoài biếu sạch dù.
- tiếp chuyện theo, cho tỏi ra phi dứa.
- 600g khung làm ngơ năng giết thịt thăn (giết lừ Mông Cổ)
- 1 quả trứng
- 1 muỗngcách làm riêu cua canh bột ngô
- 1 cùi dìa cà phê ô dù mè
- 4 cây hành lá
- 250g bắp cách làm Miến trộn dạ dày
- 2-3 tép tỏi
- 3 muỗng cô nước sốt hoisin
- 1 thìa canh nác tương
- 1 thìa cô rượu gạo Trung Quốc
- 2 cùi dìa cà phê giấm gạo
- ¼ cùi dìa cà phê tương ớt
- đàng, muối, ơ chén
Cách làm hoa làm thịt bò Mông Cổ biếu 4-5 người tớp:
Bước 1: sơ chế nguyên liệu hồn
làm thịt phớt tỉnh thái khoảnh vuông
- khuông phớt năng làm thịt thăn lừ, cạc bạn tâu vách những mảnh vuông vừa xơi, nếu như giàu mỡ thời danh thiếp bạn nhớ lọc trưởng trớt nhá.
- Trứng gà đập ra ngốn và lọc riêng lấy tròng trắng
- Tỏi lột xác vỏ rồi băm nhỏ
tỏi vằm rỏ
- hành lá kí thành những đoạn xéo trường học chỉ quãng 2- 2,5 cm
- bắp bao tử rửa sạch, nhiều dạng cắt đả kép phải bắp trường học
lau khô khan bắp bào tử
Sau đó, rửa ngô kè nác siêu rồi thấm khô khan kè khăn giấy.
Bước 2: cạc bước thực hiện huơ giết mổ ngơ Mông Cổ
- đầu tiên, chúng min sẽ pha chế phần nác sốt bột bắp ướp giết thịt lờ.
pha chế nác bột bắp
- cạc bạn chuẩn bị một cái tọng tô lớn rồi biếu ra các nguyên liệu chừng sau: tròng trắng trứng gà, bột bắp, ô dù mè và ½ cùi dìa cà phê muối.
- Dùng muỗng ngào thiệt đều lên.
ướp giết thịt phớt tỉnh
- Sau đấy, cho thịt bò vào tớp nước hổ lốn bột ngô, nhao thiệt đều và ướp giết thịt lừ trong kiếm thời kì trường đoản cú 30p – 40p đặt làm thịt bơ thẩm gia vì.
- nối theo, chúng ta sẽ pha chế nối một loại nác sốt hạng hai.
pha chế nước sốt
- danh thiếp bạn cũng lấy đơn cái tợp tô to rồi biếu ra danh thiếp nguyên liệu hồn gồm: nác sốt hoisin, nước tương, rượu gạo Trung Quốc, giấm gạo và tương ớt.
- Sau đấy, Dùng cùi dìa nhao thực đều danh thiếp loại nác sốt lên.
- Bước nối theo, chúng mỗ sẽ chiên giết mổ phớt tỉnh.
danh thiếp bạn bắc đơn cái chảo lên bếp rồi tặng dù măm ra đả rét.
rán giết thịt lơ
chờ tới lát ô dù thang sôi, biếu làm thịt ngơ vào chiên, điều chỉnh lửa ở mức nhỡ hay là cụm từ bé.
cừu giết làm lơ cho đến nhút nhát hai bình diện mẩu thịt năng sườn có màu vàng nâu thì vớt ra ngoài biếu sạch dù.
- tiếp chuyện theo, cho tỏi ra phi dứa.
Trang 1 trong tổng số 1 trang
Permissions in this forum:Bạn không có quyền trả lời bài viết
Today at 10:46 am by leduy8294
» không gian mở cho biệt thự của bạn
Today at 9:38 am by leduy8294
» ngôi nhà có phòng khách ấn tượng
Yesterday at 10:59 am by leduy8294
» căn nhà lầu 12 ấn tượng
Yesterday at 9:45 am by leduy8294
» █ TL Đại việt(CS) Open CMC Truyền Thuyết hồi 7h30 tối T5 ngày 23/2/17 - Test
Sun Feb 19, 2017 4:59 pm by rungtruongson
» █Thiên long Hoa Thiên Cốc(Cày Cuốc)- Open CMC Thiên Ma: 10H00 sáng CN 19/2/17
Sat Feb 18, 2017 7:44 am by rungtruongson
» █Kiếm thế Hàn Băng Tuyết open: 2h00 chiều T7 ngày 18/2/2017 – Sân chơi cho gam
Sat Feb 18, 2017 5:58 am by rungtruongson
» Bán gấp nhà phân lô Trần Quang Diệu 43m2 4 tầng MT 4m 8.5 tỷ TL
Fri Feb 17, 2017 9:09 am by hpld91
» căn hộ nhỏ nhưng mang lại cảm giác tự do
Thu Feb 16, 2017 10:08 am by leduy8294
» Nên cho người Việt hay người nước ngoài thuê nhà.
Wed Feb 15, 2017 4:27 pm by rentalpropertyhanoi
» Cho người nước ngoài thuê nhà thu nhập 1000usd mỗi tháng
Tue Feb 14, 2017 4:33 pm by rentalpropertyhanoi
» Bán căn CT2A Chung cư tái định cư 36 Hoàng cầu tầng 11/17 61m2 giá 28.5 triệu/m2
Tue Feb 14, 2017 11:24 am by hpld91
» ngôi nhà 26m2 nhưng thiết kệ siêu rộng
Mon Feb 13, 2017 10:41 am by leduy8294
» biến căn nhà 40m2 thành căn hộ cho thuê
Mon Feb 13, 2017 9:23 am by leduy8294
» Mời tham gia nhóm Trao đổi Link trên Facebook
Sun Feb 12, 2017 6:54 pm by admin
» Thanh lý đàn ghi-tar đẹp
Sun Feb 12, 2017 6:47 pm by admin
» Thanh lý chảo inox dùng bếp từ cho bếp nhà hàng
Sun Feb 12, 2017 6:46 pm by admin
» Thanh lý 2 cái usb dcom 3g của Viet tel
Sun Feb 12, 2017 6:44 pm by admin
» ngôi nhà nhỏ hiện đại giữa đồng xanh
Sat Feb 11, 2017 10:13 am by leduy8294
» ngôi nhà được thiết kế hiện đại
Sat Feb 11, 2017 9:14 am by leduy8294
» cải tạo nhà kho cũ thành ngôi nhà đẹp
Fri Feb 10, 2017 10:41 am by leduy8294
» ngôi nhà nhỏ di động khiến nhiều người mê mẫn
Fri Feb 10, 2017 9:20 am by leduy8294
» ngôi nhà có sân vườn rộng 58m2
Thu Feb 09, 2017 10:33 am by leduy8294
» ngắm nhìn vườn hoa đẹp trong sân nhà
Thu Feb 09, 2017 9:14 am by leduy8294
» những ý tưởng hay cho bàn ăn căn bếp nhà bạn
Tue Feb 07, 2017 11:14 am by leduy8294
» những ngôi làng đẹp nhất thế giới
Tue Feb 07, 2017 9:59 am by leduy8294
» Bạn đã biết làm trắng da toàn thân với top white chưa
Mon Feb 06, 2017 3:40 pm by phuonganhit1606@gmail.com
» Kinh nghiệm cá độ online từ A tới Z cho anh em !
Mon Feb 06, 2017 3:28 pm by duongdacton
» những ngôi nhà nhỏ nhiều người muốn sở hữu
Mon Feb 06, 2017 10:11 am by leduy8294
» █Thiên Long VÔ SONG(Cày Cuốc)- OpenCMC PK hồi 7H30 tối T4 8/2/17-Test game 7h3
Mon Feb 06, 2017 9:43 am by rungtruongson
» tư vấn cải tạo căn hộ 82m2 cho 4 người ở
Mon Feb 06, 2017 8:49 am by leduy8294
» █(Kiếm Thế Thiết Công) - OPEN 7h30 tối T4 ngày 8/2/2017 - Chơi để nhớ - Miễ phí
Sat Feb 04, 2017 10:05 am by rungtruongson
» █Hiệp Khách Thương Đao Open: 10h00 sáng CN ngày 5/2/17 - Test game: 7h30 tối T4
Thu Feb 02, 2017 11:17 am by rungtruongson
» █Kiếm thế Tuyệt Thế open: 10h00 sáng CN ngày 5/2/2017 – Game miễn phí
Thu Feb 02, 2017 11:14 am by rungtruongson
» những kiểu bàn cafe biến thành bàn ăn nhanh chóng
Thu Feb 02, 2017 8:26 am by leduy8294
» biến tổ ấm thành căn hộ thông minh
Wed Feb 01, 2017 7:59 am by leduy8294
» thiết kế phòng tắm phù hợp với kích thước
Thu Jan 26, 2017 7:31 am by leduy8294
» giường canopi sang trọng
Wed Jan 25, 2017 8:10 am by leduy8294
» thay đổi màu sơn thay đổi không gian căn phòng
Tue Jan 24, 2017 8:31 am by leduy8294
» Loại bỏ nám da hệu quả cùng top white
Mon Jan 23, 2017 4:51 pm by phuonganhit1606@gmail.com
» 8 Ý Tưởng Trang Trí Sáng Tạo Cho Trần Phòng Ăn
Mon Jan 23, 2017 4:16 pm by tuminhvo379
» sàn gổ ép trang trí nhà vừa rẻ vừa đẹp
Mon Jan 23, 2017 9:29 am by leduy8294
» Mẹo Hay Để Vệ Sinh Bàn Trà Phòng Khách
Mon Jan 23, 2017 8:52 am by tuminhvo379
» những kiểu giấy dán tường giúp phòng tắm đẹp hơn
Mon Jan 23, 2017 8:23 am by leduy8294
» Những Thiết Kế Ghế Sofa Màu Xám Đầy Mê Hoặc
Sat Jan 21, 2017 8:14 am by tuminhvo379
» Những Mẫu Đèn Chùm Tạo Sự Lung Linh Cho Phòng Khách
Fri Jan 20, 2017 4:49 pm by tuminhvo379
» những cách trang trí nhà đẹp nhưng không phù hợp với việt nam
Fri Jan 20, 2017 10:57 am by leduy8294
» ngôi nhà 3 tầng bằng đất nung
Fri Jan 20, 2017 9:31 am by leduy8294
» Trang Trí Nhà Bằng Thảm Trải Sàn Mùa Xuân
Fri Jan 20, 2017 9:12 am by tuminhvo379
» [Thu mua] xác iPhone 6,6+ iphone 7,iphone 8 giá cao tphcm
Thu Jan 19, 2017 10:17 pm by locgame

markdown:
Latest topics
Most Viewed Topics
Thống KêHiện có
**62**người đang truy cập Diễn Đàn, gồm: **0**Thành viên, **0**Thành viên ẩn danh và **62**Khách viếng thăm :: 2 Bots
Không
Số người truy cập cùng lúc nhiều nhất là
**117**người, vào ngày Tue May 17, 2016 10:49 pm
Top posting users this month
![]()
![]()
[rungtruongson](/u1007)
![]()
![]()
**admin**
![]()
![]()
[rentalpropertyhanoi](/u1553)
![]()
![]()
[hpld91](/u1154)
![]()
![]()
[phuonganhit1606@gmail.com](/u1398)
![]()
![]()
[duongdacton](/u1551)
![]()
![]()
[cách làm món thịt bò xào kiểu mông cổ ](/t26040-topic)
Trang
**1**trong tổng số **1**trang • [Share](#)•
[cách làm món thịt bò xào kiểu mông cổ ](/t26040-topic#28467)
Nguyên liệu hồn đả khuơ cách làm bột trà xanh giết thịt làm lơ Mông Cổ biếu 4-5 người tợp:
- 600g khung làm ngơ năng giết thịt thăn (giết lừ Mông Cổ)
- 1 quả trứng
- 1 muỗngcách làm riêu cua canh bột ngô
- 1 cùi dìa cà phê ô dù mè
- 4 cây hành lá
- 250g bắp cách làm Miến trộn dạ dày
- 2-3 tép tỏi
- 3 muỗng cô nước sốt hoisin
- 1 thìa canh nác tương
- 1 thìa cô rượu gạo Trung Quốc
- 2 cùi dìa cà phê giấm gạo
- ¼ cùi dìa cà phê tương ớt
- đàng, muối, ơ chén
Cách làm hoa làm thịt bò Mông Cổ biếu 4-5 người tớp:
Bước 1: sơ chế nguyên liệu hồn
làm thịt phớt tỉnh thái khoảnh vuông
- khuông phớt năng làm thịt thăn lừ, cạc bạn tâu vách những mảnh vuông vừa xơi, nếu như giàu mỡ thời danh thiếp bạn nhớ lọc trưởng trớt nhá.
- Trứng gà đập ra ngốn và lọc riêng lấy tròng trắng
- Tỏi lột xác vỏ rồi băm nhỏ
tỏi vằm rỏ
- hành lá kí thành những đoạn xéo trường học chỉ quãng 2- 2,5 cm
- bắp bao tử rửa sạch, nhiều dạng cắt đả kép phải bắp trường học
lau khô khan bắp bào tử
Sau đó, rửa ngô kè nác siêu rồi thấm khô khan kè khăn giấy.
Bước 2: cạc bước thực hiện huơ giết mổ ngơ Mông Cổ
- đầu tiên, chúng min sẽ pha chế phần nác sốt bột bắp ướp giết thịt lờ.
pha chế nác bột bắp
- cạc bạn chuẩn bị một cái tọng tô lớn rồi biếu ra các nguyên liệu chừng sau: tròng trắng trứng gà, bột bắp, ô dù mè và ½ cùi dìa cà phê muối.
- Dùng muỗng ngào thiệt đều lên.
ướp giết thịt phớt tỉnh
- Sau đấy, cho thịt bò vào tớp nước hổ lốn bột ngô, nhao thiệt đều và ướp giết thịt lừ trong kiếm thời kì trường đoản cú 30p – 40p đặt làm thịt bơ thẩm gia vì.
- nối theo, chúng ta sẽ pha chế nối một loại nác sốt hạng hai.
pha chế nước sốt
- danh thiếp bạn cũng lấy đơn cái tợp tô to rồi biếu ra danh thiếp nguyên liệu hồn gồm: nác sốt hoisin, nước tương, rượu gạo Trung Quốc, giấm gạo và tương ớt.
- Sau đấy, Dùng cùi dìa nhao thực đều danh thiếp loại nác sốt lên.
- Bước nối theo, chúng mỗ sẽ chiên giết mổ phớt tỉnh.
danh thiếp bạn bắc đơn cái chảo lên bếp rồi tặng dù măm ra đả rét.
rán giết thịt lơ
chờ tới lát ô dù thang sôi, biếu làm thịt ngơ vào chiên, điều chỉnh lửa ở mức nhỡ hay là cụm từ bé.
cừu giết làm lơ cho đến nhút nhát hai bình diện mẩu thịt năng sườn có màu vàng nâu thì vớt ra ngoài biếu sạch dù.
- tiếp chuyện theo, cho tỏi ra phi dứa.
- 600g khung làm ngơ năng giết thịt thăn (giết lừ Mông Cổ)
- 1 quả trứng
- 1 muỗngcách làm riêu cua canh bột ngô
- 1 cùi dìa cà phê ô dù mè
- 4 cây hành lá
- 250g bắp cách làm Miến trộn dạ dày
- 2-3 tép tỏi
- 3 muỗng cô nước sốt hoisin
- 1 thìa canh nác tương
- 1 thìa cô rượu gạo Trung Quốc
- 2 cùi dìa cà phê giấm gạo
- ¼ cùi dìa cà phê tương ớt
- đàng, muối, ơ chén
Cách làm hoa làm thịt bò Mông Cổ biếu 4-5 người tớp:
Bước 1: sơ chế nguyên liệu hồn
làm thịt phớt tỉnh thái khoảnh vuông
- khuông phớt năng làm thịt thăn lừ, cạc bạn tâu vách những mảnh vuông vừa xơi, nếu như giàu mỡ thời danh thiếp bạn nhớ lọc trưởng trớt nhá.
- Trứng gà đập ra ngốn và lọc riêng lấy tròng trắng
- Tỏi lột xác vỏ rồi băm nhỏ
tỏi vằm rỏ
- hành lá kí thành những đoạn xéo trường học chỉ quãng 2- 2,5 cm
- bắp bao tử rửa sạch, nhiều dạng cắt đả kép phải bắp trường học
lau khô khan bắp bào tử
Sau đó, rửa ngô kè nác siêu rồi thấm khô khan kè khăn giấy.
Bước 2: cạc bước thực hiện huơ giết mổ ngơ Mông Cổ
- đầu tiên, chúng min sẽ pha chế phần nác sốt bột bắp ướp giết thịt lờ.
pha chế nác bột bắp
- cạc bạn chuẩn bị một cái tọng tô lớn rồi biếu ra các nguyên liệu chừng sau: tròng trắng trứng gà, bột bắp, ô dù mè và ½ cùi dìa cà phê muối.
- Dùng muỗng ngào thiệt đều lên.
ướp giết thịt phớt tỉnh
- Sau đấy, cho thịt bò vào tớp nước hổ lốn bột ngô, nhao thiệt đều và ướp giết thịt lừ trong kiếm thời kì trường đoản cú 30p – 40p đặt làm thịt bơ thẩm gia vì.
- nối theo, chúng ta sẽ pha chế nối một loại nác sốt hạng hai.
pha chế nước sốt
- danh thiếp bạn cũng lấy đơn cái tợp tô to rồi biếu ra danh thiếp nguyên liệu hồn gồm: nác sốt hoisin, nước tương, rượu gạo Trung Quốc, giấm gạo và tương ớt.
- Sau đấy, Dùng cùi dìa nhao thực đều danh thiếp loại nác sốt lên.
- Bước nối theo, chúng mỗ sẽ chiên giết mổ phớt tỉnh.
danh thiếp bạn bắc đơn cái chảo lên bếp rồi tặng dù măm ra đả rét.
rán giết thịt lơ
chờ tới lát ô dù thang sôi, biếu làm thịt ngơ vào chiên, điều chỉnh lửa ở mức nhỡ hay là cụm từ bé.
cừu giết làm lơ cho đến nhút nhát hai bình diện mẩu thịt năng sườn có màu vàng nâu thì vớt ra ngoài biếu sạch dù.
- tiếp chuyện theo, cho tỏi ra phi dứa.
Trang
**1**trong tổng số **1**trang
Bạn
**Permissions in this forum:** **không có quyền**trả lời bài viết
» không gian mở cho biệt thự của bạn
» ngôi nhà có phòng khách ấn tượng
» căn nhà lầu 12 ấn tượng
» █ TL Đại việt(CS) Open CMC Truyền Thuyết hồi 7h30 tối T5 ngày 23/2/17 - Test
» █Thiên long Hoa Thiên Cốc(Cày Cuốc)- Open CMC Thiên Ma: 10H00 sáng CN 19/2/17
» █Kiếm thế Hàn Băng Tuyết open: 2h00 chiều T7 ngày 18/2/2017 – Sân chơi cho gam
» Bán gấp nhà phân lô Trần Quang Diệu 43m2 4 tầng MT 4m 8.5 tỷ TL
» căn hộ nhỏ nhưng mang lại cảm giác tự do
» Nên cho người Việt hay người nước ngoài thuê nhà.
» Cho người nước ngoài thuê nhà thu nhập 1000usd mỗi tháng
» Bán căn CT2A Chung cư tái định cư 36 Hoàng cầu tầng 11/17 61m2 giá 28.5 triệu/m2
» ngôi nhà 26m2 nhưng thiết kệ siêu rộng
» biến căn nhà 40m2 thành căn hộ cho thuê
» Mời tham gia nhóm Trao đổi Link trên Facebook
admin
» Thanh lý đàn ghi-tar đẹp
admin
» Thanh lý chảo inox dùng bếp từ cho bếp nhà hàng
admin
» Thanh lý 2 cái usb dcom 3g của Viet tel
admin
» ngôi nhà nhỏ hiện đại giữa đồng xanh
» ngôi nhà được thiết kế hiện đại
» cải tạo nhà kho cũ thành ngôi nhà đẹp
» ngôi nhà nhỏ di động khiến nhiều người mê mẫn
» ngôi nhà có sân vườn rộng 58m2
» ngắm nhìn vườn hoa đẹp trong sân nhà
» những ý tưởng hay cho bàn ăn căn bếp nhà bạn
» những ngôi làng đẹp nhất thế giới
» Bạn đã biết làm trắng da toàn thân với top white chưa
» Kinh nghiệm cá độ online từ A tới Z cho anh em !
» những ngôi nhà nhỏ nhiều người muốn sở hữu
» █Thiên Long VÔ SONG(Cày Cuốc)- OpenCMC PK hồi 7H30 tối T4 8/2/17-Test game 7h3
» tư vấn cải tạo căn hộ 82m2 cho 4 người ở
» █(Kiếm Thế Thiết Công) - OPEN 7h30 tối T4 ngày 8/2/2017 - Chơi để nhớ - Miễ phí
» █Hiệp Khách Thương Đao Open: 10h00 sáng CN ngày 5/2/17 - Test game: 7h30 tối T4
» █Kiếm thế Tuyệt Thế open: 10h00 sáng CN ngày 5/2/2017 – Game miễn phí
» những kiểu bàn cafe biến thành bàn ăn nhanh chóng
» biến tổ ấm thành căn hộ thông minh
» thiết kế phòng tắm phù hợp với kích thước
» giường canopi sang trọng
» thay đổi màu sơn thay đổi không gian căn phòng
» Loại bỏ nám da hệu quả cùng top white
» 8 Ý Tưởng Trang Trí Sáng Tạo Cho Trần Phòng Ăn
» sàn gổ ép trang trí nhà vừa rẻ vừa đẹp
» Mẹo Hay Để Vệ Sinh Bàn Trà Phòng Khách
» những kiểu giấy dán tường giúp phòng tắm đẹp hơn
» Những Thiết Kế Ghế Sofa Màu Xám Đầy Mê Hoặc
» Những Mẫu Đèn Chùm Tạo Sự Lung Linh Cho Phòng Khách
» những cách trang trí nhà đẹp nhưng không phù hợp với việt nam
» ngôi nhà 3 tầng bằng đất nung
» Trang Trí Nhà Bằng Thảm Trải Sàn Mùa Xuân
» [Thu mua] xác iPhone 6,6+ iphone 7,iphone 8 giá cao tphcm


text:
Chung cư cao cấp 3 mặt View Hồ Tây tại D’Le Roi Soleil, cho thuê tới 100 triệu/tháng LH:093.4488.758
Thảo luận trong 'Nhà Đất - Bất Động Sản' bắt đầu bởi mshoai, 29 Tháng tám 2016.
Tags: chung cư hồ tây, chung cư
Thảo luận trong 'Nhà Đất - Bất Động Sản' bắt đầu bởi mshoai, 29 Tháng tám 2016.

markdown:
![](http://seotoolsaz.com/ads/banner-seotoolsaz.gif)
![](http://seotoolsaz.com/ads/banner-seotoolsaz.gif)
# Chung cư cao cấp 3 mặt View Hồ Tây tại D’Le Roi Soleil, cho thuê tới 100 triệu/tháng LH:093.4488.758
Thảo luận trong '
[Nhà Đất - Bất Động Sản](forums/nha-dat-bat-dong-san/)' bắt đầu bởi [mshoai](members/mshoai.9891/), [29 Tháng tám 2016](threads/chung-cu-cao-cap-3-mat-view-ho-tay-tai-d%E2%80%99le-roi-soleil-cho-thue-toi-100-trieu-thang-lh-093-4488-758.80664/).
Tags:
[chung cư hồ tây](tags/chung+c%C6%B0+h%E1%BB%93+t%C3%A2y/), [chung cư](tags/chung+c%C6%B0/) [iwin](http://taiiwin.vn)mới nhất - [cach tri mun dau den](http://chamsocda24h.net/cach-tri-mun/cach-tri-mun-dau-den)- [cach tri mun trung ca](http://chamsocda24h.net/cach-tri-mun/cach-tri-mun-trung-ca)- [thẩm mỹ viện](http://chamsocda24h.net/bi-quyet-lam-dep/tham-my-vien)- [danh bạ thẩm mỹ viện](http://chamsocda24h.net/bi-quyet-lam-dep/danh-ba-tham-my-vien)- [triệt lông vĩnh viễn](http://chamsocda24h.net/cham-soc-co-the/triet-long-vinh-vien)- [cach tri mun boc](http://chamsocda24h.net/cach-tri-mun/cach-tri-mun-boc)- [giam can hieu qua](http://chamsocda24h.net/giam-can-hieu-qua-2)- [cham soc da mat](http://chamsocda24h.net)- [tap chi cong nghe](http://tapchicongnghe.org/)- hướng dẫn nấu các [mon ngon moi ngay](http://amthucquan.net/mon-ngon-moi-ngay)Việt Nam - - [tai iwin](http://taiiwinmoi.net)- [tai game ban ca](http://gamebanca.org)- [game avatar](http://thegioigame24h.net/game-avatar/)- [game iwin](http://thegioigame24h.net/game-iwin/)- khóa [hoc photoshop](http://www.cncaptech.edu.vn/pages/courses/career-courses/photoshop.php)- [phòng khám đa khoa](http://mayo.com.vn)chất lượng cao TPHCM - Công ty [thi công nội thất chuyên nghiệp](http://www.ttdecor.net)nhất hiện nay

Server: Nginx

X-Powered-By: VPSSIM