1. Trang chủ
  2. » Công Nghệ Thông Tin

Các giải pháp lập trình CSharp- P55 docx

10 271 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 2,62 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các lớp này hỗ trợ mọi thứ, từ lập trình dựa-trên-socket với TCP/IP cho đến download file và trang HTML từ web thông qua HTTP.. Download file thông qua HTTP  Bạn cần một cách thật nhan

Trang 1

Hình 10.25 Gõ tiêu đề Category - Product Report

11 Nhắp Finish File CrystalReport1.rpt (xem hình 10.26) sẽ được thêm vào dự án.

Hình 10.26 Bản báo cáo đã được thiết kế

Trang 2

Chương 10: Cơ sở dữ liệu

Chúng ta đã xây dựng xong bản báo cáo Bước thứ hai là thiết lập một cơ chế để xem bản báo cáo này Bước này khá dễ dàng Bạn hãy kéo điều kiểm CrystalReportViewer từ hộp công cụ vào form mặc định

Nhắp phải vào CrystalReportViewer, và chọn Properties Tìm thuộc tính Dock và chọn Fill

(xem hình 10.27) Tùy chọn này sẽ khiến CrystalReportViewer lấp đầy vùng client của form

Kế tiếp, tìm thuộc tính ReportSource, và nhắp Browse Chọn file CrystalReport1.rpt mà

chúng ta vừa xây dựng Bây giờ, bạn hãy chạy chương trình để xem kết quả (xem hình 10.29)

Hình 10.27 Tìm thuộc tính Dock và chọn Fill

Trang 3

Hình 10.28 Form báo cáo hoàn chỉnh

Hình 10.29 Trình bày báo cáo với Crystal Report

Như bạn có thể thấy, điều kiểm CrystalReportViewer khá tinh vi Bạn có thể sử dụng các

chức năng có sẵn để phân trang và in báo cáo Bạn có thể nhắp nút Export Report (hình phong

bì với mũi tên đỏ) để xuất báo cáo thành một file Adobe Acrobat (.pdf), Microsoft Excel (.xls),

Microsoft Word (.doc), hay Rich Text Document (.rtf) Bạn cũng có thể phóng to bản báo cáo

hoặc tìm kiếm text bên trong bản báo cáo

Trình thuật sĩ này này mạnh đến nỗi bạn không phải viết dòng mã nào cả Một file mã nguồn báo cáo, chứa một lớp báo cáo cho bản báo cáo này, tự động được sinh ra Lớp báo cáo này có lớp cơ sở là ReportClass

Trang 4

Chương 10: Cơ sở dữ liệu

Trang 5

Chương 11:LẬP TRÌNH MẠNG

Trang 6

436

Trang 7

icrosoft NET Framework bao gồm một tập các lớp dùng để lập trình mạng thuộc

hai không gian tên: System.Net và System.Net.Sockets Các lớp này hỗ trợ mọi

thứ, từ lập trình dựa-trên-socket với TCP/IP cho đến download file và trang

HTML từ web thông qua HTTP Hai không gian tên này cũng là nền tảng cho hai nền

networking cấp cao hơn—Remoting và dịch vụ Web XML Hai nền này sẽ được đề cập chi tiết

trong chương 12 Chương này sẽ trình bày các vấn đề sau:

M

Lấy tài nguyên từ web thông qua HTTP (mục 11.1, 11.2, và 11.3).

Hiển thị một trang web trong một ứng dụng dựa-trên-Windows bằng điều kiểm Web

Browser (mục 11.4).

Lấy địa chỉ IP và thông tin DNS về máy tính hiện hành và các miền khác trên World

Wide Web (mục 11.5 và 11.6).

Gửi thông điệp “ping” (mục 11.7) và giao tiếp bằng giao thức TCP và UDP (mục 11.8

đến 11.13)

 Gửi và nhận e-mail (mục 11.14 và 11.15)

1. Download file thông qua HTTP

Bạn cần một cách thật nhanh và đơn giản để download một file từ một website

thông qua HTTP.

Sử dụng phương thức tĩnh DownloadFile của lớp System.Net.WebClient

.NET Framework cung cấp vài cơ chế dùng để gửi dữ liệu thông qua HTTP Một trong những

cách dễ nhất là sử dụng lớp System.Net.WebClient Nó cung cấp những phương thức mức-cao như DownloadFile và UploadFile Các phương thức này không có sự hỗ trợ nội tại nào cho giao tiếp bất đồng bộ, hay xác thực Nếu cần các tính năng này, bạn có thể sử dụng các chức năng phức tạp hơn do lớp WebRequest và WebResponse cung cấp (sẽ được mô tả trong mục 11.2 và 11.3)

Chương trình ví dụ dưới đây sẽ download file winXP.gif từ localhost và lưu vào đĩa.

using System;

using System.Net;

using System.IO;

public class Download {

private static void Main() {

string remoteUri =

"http://localhost/winXP.gif";

string localFileName = "winXP.gif";

WebClient client = new WebClient();

Trang 8

Chương 11: Lập trình mạng

Console.WriteLine("Downloading file " +

remoteUri + " to " + Path.GetFullPath(localFileName));

// Thực hiện download.

client.DownloadFile(remoteUri, localFileName);

Console.WriteLine("Download complete.");

Console.ReadLine();

}

}

2. Download và x lý file b ng stream Download và x lý file b ng stream ử ử ằ ằ

Bạn cần lấy một file từ một website, nhưng không muốn lưu trực tiếp vào đĩa

Thay vào đó, bạn muốn xử lý ngay trong ứng dụng của mình.

Sử dụng lớp WebRequest để tạo yêu cầu, lớp WebResponse để nhận đáp ứng từ

web-server, và một số dạng reader ( StreamReader đối với dữ liệu HTML hay text, hoặc

BinaryReader đối với dữ liệu nhị phân) để phân tích đáp ứng đó.

Download một file cần bốn bước cơ bản sau:

1 Sử dụng phương thức tĩnh Create của lớp System.Net.WebRequest để chỉ định trang bạn cần Phương thức này trả về một đối tượng dẫn xuất từ WebRequest, phụ thuộc vào

kiểu Uniform Resource Identifier (URI) bạn sử dụng Ví dụ, nếu tài nguyên là HTTP

(với cụm từ http://), nó sẽ tạo ra đối tượng HttpWebRequest; nếu tài nguyên là file (với cụm từ file://), nó sẽ tạo ra đối tượng FileWebRequest Bạn có thể thiết lập thời gian trễ thông qua thuộc tính WebRequest.Timeout

2 Sử dụng phương thức GetResponse của đối tượng WebRequest, phương thức này trả về một đối tượng WebResponse cho trang Nếu yêu cầu vượt qua thời gian trễ thì ngoại lệ

WebException sẽ bị ném

3 Tạo một StreamReader hoặc một BinaryReader cho WebResponse

4 Công việc cuối cùng là xử lý stream này, chẳng hạn ghi nó ra file rồi hiển thị trong ứng dụng của bạn

Đoạn mã dưới đây sẽ lấy và hiển thị một file ảnh và nội dung HTML của một trang web.

using System;

using System.Net;

using System.IO;

using System.Drawing;

using System.Windows.Forms;

Trang 9

private System.Windows.Forms.PictureBox picBox;

private System.Windows.Forms.TextBox textBox;

// (Bỏ qua phần mã designer.)

private void DownloadForm_Load(object sender, System.EventArgs e) {

string picUri =

"http://localhost/winXP.gif";

string htmlUri =

"http://localhost/iishelp/iis/misc/default.asp";

// Tạo yêu cầu.

WebRequest requestPic = WebRequest.Create(picUri);

WebRequest requestHtml = WebRequest.Create(htmlUri);

// Nhận đáp ứng Công việc này sẽ mất nhiều

// thời gian, đặc biệt khi file cần lấy quá lớn.

WebResponse responsePic = requestPic.GetResponse();

WebResponse responseHtml = requestHtml.GetResponse();

// Đọc response stream.

Image downloadedImage =

Image.FromStream(responsePic.GetResponseStream());

StreamReader r =

new StreamReader(responseHtml.GetResponseStream());

string htmlContent = r.ReadToEnd();

r.Close();

// Hiển thị ảnh.

picBox.Image = downloadedImage;

// Hiển thị nội dung dạng text của trang HTML.

textBox.Text = htmlContent;

}

}

Trang 10

Chương 11: Lập trình mạng

Hình 11.1 Download nội dung của một trang web

Để download file lớn một cách hiệu quả, bạn có thể sử dụng kỹ thuật bất đồng bộ đã được mô

tả trong chương 4 Bạn cũng có thể sử dụng phương thức WebRequest.BeginGetResponse,

phương thức này không chặn mã lệnh của bạn và sẽ gọi thủ tục callback khi nhận được đáp

ứng

3. L y trang HTML t m t website có yêu c u xác th c L y trang HTML t m t website có yêu c u xác th c ấ ấ ừ ộ ừ ộ ầ ầ ự ự

Bạn cần thu lấy một file từ một website, nhưng website đó yêu cầu một số thông

tin xác thực.

Sử dụng lớp WebRequest và WebResponse đã được mô tả trong mục 11.2 Tuy

nhiên, trước khi gửi yêu cầu, bạn phải cấu hình thuộc tính

WebRequest.Credentials với các thông tin xác thực.

Một số website yêu cầu thông tin xác thực từ người dùng Khi kết nối thông qua trình duyệt, thông tin này có thể được cung cấp một cách trong suốt (ví dụ, một intranet-site cục bộ có sử

dụng Integrated Windows authentication), hoặc trình duyệt có thể yêu cầu thông tin này thông

qua một hộp thoại đăng nhập Khi truy xuất một trang web bằng lập trình thì mã lệnh của bạn cần phải cung cấp các thông tin này

Ngày đăng: 08/07/2014, 17:20

HÌNH ẢNH LIÊN QUAN

Hình 10.25 Gõ tiêu đề Category - Product Report - Các giải pháp lập trình CSharp- P55 docx
Hình 10.25 Gõ tiêu đề Category - Product Report (Trang 1)
Hình 10.26 Bản báo cáo đã được thiết kế - Các giải pháp lập trình CSharp- P55 docx
Hình 10.26 Bản báo cáo đã được thiết kế (Trang 1)
Hình 10.27 Tìm thuộc tính Dock và chọn Fill - Các giải pháp lập trình CSharp- P55 docx
Hình 10.27 Tìm thuộc tính Dock và chọn Fill (Trang 2)
Hình 10.29 Trình bày báo cáo với Crystal Report - Các giải pháp lập trình CSharp- P55 docx
Hình 10.29 Trình bày báo cáo với Crystal Report (Trang 3)
Hình 10.28 Form báo cáo hoàn chỉnh - Các giải pháp lập trình CSharp- P55 docx
Hình 10.28 Form báo cáo hoàn chỉnh (Trang 3)
Hình 11.1 Download nội dung của một trang web - Các giải pháp lập trình CSharp- P55 docx
Hình 11.1 Download nội dung của một trang web (Trang 10)

TỪ KHÓA LIÊN QUAN

w