Webservice
Contents
- 1. Client Winform Service C#
- 2. Client Webform Service C#
- 3. Client Console Service C#
- 4. Tạo Webservice trên C#
- 5. Client Java App
- 6. Client Console Service Java
- 7. Tạo Webservice trên Java
- 8. Kinh nghiệm
- 8.1 Vấn đề kêt nối webservice java vào C#
- 8.2 Chuyển đổi kiểu dữ liệu
- 8.3 Sắp xếp mảng nhanh
- 8.4 Duyệt nhanh mảng
- 8.5 Lỗi Unable to open web service tester page (Khi test webservice java)
- 8.6 Lỗi về cơ sở dữ liệu Linq
- 8.7 Không sử dụng linq vẫn kết nối csdl phà phà
- 8.8 Lấy data webservice trả về đổ vào DataTable
1. Client Winform Service C#
1.1 Tạo project winform C#
Bước 1: Mở Visual Studio C#
Bước 2: Chọn File -> New Project (Hoặc sử dụng tổ hợp phím tắt Ctr l+ N)
Bước 3: Trong hộp thoại New Project chọn Other Languages-> Visual C # và chọn Windows Forms Application
Bước 4: Nhập tên dự án ở phía dưới sau đó nhấp nốt OK sẽ hiển thị ra Form1 là Form mặc định của dự án.
1.2 Thêm service client
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ạn nhập url của web service vào khung nhập address và nhớ là đường dẫn có ?WSDL ở phía sau.
4- Bạn đặt tên cho webservice ở Namespace. Click OK để hoàn thành.
Nếu tạo thành công thì trong Solution Explorer sẽ xuất hiện thư mục Service.references
1.3 Sử dụng webservice
Đầu tiên bạn vào code behind (nháy chuột phải chọn view code) để khai báo webservice. Bạn thêm code sau phía trên constructor của Form như bên dưới. Bạn thay đổi chữ WebService thành tên bạn đặt lúc nãy
WebService.ServiceSoapClient ws = new WebService.ServiceSoapClient(); public Form1() { InitializeComponent(); }
Như vậy đối tượng webservice đã được khai báo với tên là ws. Bạn sử dụng biến ws để gọi các phương thức của webservice.
Ví dụ: Webservice có phương thức giai_pt_bac_1 gồm 2 tham số và trả kết quả dạng string thì:
txtKq.Text = ws.giai_pt_bac_1(a, b);
Source code đầy đủ
private void button1_Click(object sender, EventArgs e) { if(radioPT1.Checked == false && radioPT2.Checked == false) { MessageBox.Show("Bạn cần chọn phương trình để giải"); } else if(radioPT1.Checked) { float a = float.Parse(txtA1.Text); float b = float.Parse(txtB1.Text); txtKq.Text = ws.giai_pt_bac_1(a, b); } else { float a = float.Parse(txtA2.Text); float b = float.Parse(txtB2.Text); float c = float.Parse(txtC2.Text); txtKq.Text = ws.giai_pt_bac_2(a, b, c); } } }
2. Client Webform Service C#
2.1 Tạo project webform C#
Chọn New > Web Site > Visual C# và chọn Empty Website, nơi lưu và OK:
Lúc này chúng ta có một site rỗng, chỉ chứa một file gọi là Web.config. Mở cửa sổ Solution Explorer ta sẽ thấy như sau:
2.2 Thêm service client
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ạn nhập url của web service vào khung nhập address và nhớ là đường dẫn có ?WSDL ở phía sau.
4- Bạn đặt tên cho webservice ở Namespace. Click OK để hoàn thành.
Nếu tạo thành công thì trong Solution Explorer sẽ xuất hiện thư mục App_WebReferences
2.3 Sử dụng webservice
Đầu tiên bạn add file webform mới bằng cách nháy chuột phải vào project => Add => Webform và đặt tên nhấn ok.
Tiếp theo vào code behind (nháy chuột phải chọn view code) để khai báo webservice. Bạn thêm code sau phía trên hàm Page_load như bên dưới. Bạn thay đổi chữ WebService thành tên bạn đặt lúc nãy
Service.ServiceSoapClient ws = new Service.ServiceSoapClient(); protected void Page_Load(object sender, EventArgs e) { }
Như vậy đối tượng webservice đã được khai báo với tên là ws. Bạn sử dụng biến ws để gọi các phương thức của webservice.
Ví dụ: Webservice có phương thức giai_pt_bac_1 gồm 2 tham số và trả kết quả dạng string thì:
txtKq.Text = ws.giai_pt_bac_1(a, b);
Source code đầy đủ
private void button1_Click(object sender, EventArgs e) { if(radioPT1.Checked) { float a = float.Parse(txtA1.Text); float b = float.Parse(txtB1.Text); txtKq.Text = ws.giai_pt_bac_1(a, b); } else { float a = float.Parse(txtA2.Text); float b = float.Parse(txtB2.Text); float c = float.Parse(txtC2.Text); txtKq.Text = ws.giai_pt_bac_2(a, b, c); } }
3. Client Console Service C#
3.1 Tạo project console C#
Bước 1: Mở Visual Studio C#
Bước 2: Chọn File -> New Project (Hoặc sử dụng tổ hợp phím tắt Ctr l+ N)
Bước 3: Trong hộp thoại New Project chọn Other Languages-> Visual C # và chọn Console Application
Bước 4: Nhập tên dự án ở phía dưới sau đó nhấp nốt OK.
3.2 Thêm service client
Việc thêm webservice vào tương tự như trên winform.
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ạn nhập url của web service vào khung nhập address và nhớ là đường dẫn có ?WSDL ở phía sau.
4- Bạn đặt tên cho webservice ở Namespace. Click OK để hoàn thành.
Nếu tạo thành công thì trong Solution Explorer sẽ xuất hiện thư mục Service.references
3.3 Sử dụng webservice
Đầu tiên bạn cần để khai báo webservice ở hàm main. Bạn thay đổi chữ WebService thành tên bạn đặt lúc nãy
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { WebService.ServiceSoapClient ws = new WebService.ServiceSoapClient(); } } }
Như vậy đối tượng webservice đã được khai báo với tên là ws. Bạn sử dụng biến ws để gọi các phương thức của webservice.
Ví dụ: Webservice có phương thức giai_pt_bac_1 gồm 2 tham số và trả kết quả dạng string thì:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { WebService.ServiceSoapClient ws = new WebService.ServiceSoapClient(); Console.Write(ws.giai_pt_bac_1(a, b)); } } }
Ví dụ khác về cộng trừ nhân chia. Source code console full:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { ServiceReference1.ServiceSoapClient ws = new ServiceReference1.ServiceSoapClient(); int a, b; Console.Write("Nhap so thu nhat: "); a = Int32.Parse(Console.ReadLine()); Console.Write("Nhap so thu hai: "); b = Int32.Parse(Console.ReadLine()); Console.WriteLine("a + b = " + ws.cong(a, b)); Console.WriteLine("a - b = " + ws.tru(a, b)); Console.WriteLine("a * b = " + ws.nhan(a, b)); Console.WriteLine("a / b = " + ws.chia(a, b)); Console.ReadKey(); } } }
3.4 Một số lệnh của console C#
//Trong C# có 5 lệnh dùng để nhập xuất đó là: Console.Write(); Console.WriteLine(); Console.Read(); Console.ReadLine(); Console.ReadKey();
3.4.1 Console.Write()
// In ra màn hình dòng chữ Hello Console.Write("Hello"); // In ra màn hình số 10 Console.Write(10); // In ra màn hình số 10.9 (f biểu thị cho kiểu dữ liệu float sẽ được trình bày chi tiết ở bài 5) Console.Write(10.9f); // In ra màn hình chữ true của kiểu dữ liệu bool(sẽ được trình bày chi tiết ở bài 5) Console.Write(true);
3.4.2 Console.WriteLine()
3.4.3 Console.Read()
Console.WriteLine(Console.Read()); // đọc 1 ký tự từ bàn phím bằng lệnh Console.Read() sau đó in ra ký tự vừa đọc được.
3.4.4 Console.ReadLine()
Console.WriteLine(Console.ReadLine()); // đọc dữ liệu từ bàn phím cho đến khi gặp ký tự xuống dòng thì dừng. Sau đó in giá trị đã nhập ra màn hình.
3.4.5 Console.ReadKey()
Console.ReadKey(); // lệnh này dùng với mục đích dừng màn hình để xem kết quả.
4. Tạo Webservice trên C#
- Tạo Web Service
- Trong môi trường Visual Studio, Ta chọn File->New->Website. Tiếp theo chọn Visual C# => .NET Framework 3.5 => ASP.NET WebService => Chọn thư mục và đặt tên project phía sau đường dẫn => Nhấn OK
Nhấn OK, ta được
- Code cho các service methods như sau:
Bạn viết các hàm như bình thường ở file Service.asmx nhưng phía trên tên hàm cần có [WebMethod]
[WebMethod] public double USD2VND(double usd) { return usd * USD_RATE; } [WebMethod] public double EUR2VND(double eur) { return eur * EUR_RATE; }
- Chạy ứng dụng bằng cách nhấn F5, VS sẽ triển khai ứng dụng. Kết quả như sau
Nếu bạn muốn xem WSDL của service, ta nhấn link “Service Description” ta có
Ghi nhớ lại link này để còn dùng về sau : http://localhost:1291/ConvertWS.asmx?WSDL
- Để thử service, ta có thể chọn bất kỳ link nào trong 4 link EUR2VND, USD2VND VND2EUR, VND2USD. Ở đây ta thử link USD2VND, kết quả như sau
Nhập usd có giá trị 100, nhấn Invoke, kết quả nhận được là
Như vậy là chúng ta đã tạo được 1 Web Service, bây giờ chúng ta có thể triển khai 1 ứng dụng client được rồi.
Nguồn: https://vovanhai.wordpress.com/web-services
5. Client Java App
5.1 Tạo project App Java
Mình sử dụng Netbeans IDE nhé!
1. Khởi động Netbean, tạo 1 project cho ứng dụng Java: chọn menu File => New Project…
– Hộp thoại New Project xuất hiện,
– Trong hộp thoại này, mục Categories (1) chọn Java, mục Projects (2) chọn Java Application, Xong chọn nút Next để chuyển sang màn hình kế tiếp
– Trong màn hình New Java Application
+ Mục Project Name (1): đặt tên cho Project (lưu ý là không sử dụng ký tự đặc biệt)
+ Mục Project Location (2): chọn nơi lưu Project
+ Mục Create Main Class (3): bỏ chọn (không có dấu check, hình chụp trên là có dấu check)
+ Xong chọn Finish (4) để hoàn thành việc tạo ra Project cho ứng dụng Java
TẠO JFRAME FORM
Tạo Form trống, chưa có gì hết
– Trong Netbean IDE, chọn File => New File…
– Màn hình New File xuất hiện
– Trong màn hình này, mục Categories chọn Swing GUI Forms, mục File Types chọn JFrame Form, xong chọn nút Next
– Mỗi cửa sổ Swing trong Java là một class thừa kế từ lớp JFrame, trong màn New Application Sample Form
+ Mục Class Name: đặt tên cho Form
+ Mục Package: đặt tên cho package chứa Form này
+ Xong chọn nút Finish để hoàn thành việc tạo Form
– Chúng ta có thể Run Project để xem kết quả:
CÁCH KHÁC TẠO JFRAME FORM ĐƠN GIẢN HƠN
Nháy chuột phải vào project => New => JFrame Form
5.2 Thêm service client
- Nếu chưa cài plugin SOAP Web Service vào netbeans, bạn cần cài Plugin vào:
Tools => Plugins => Availables Plugins => tích vào SOAP Web Service => Install (nhấn next,… và chờ khởi động lại netbeans)
- Click phải chuột vào project => New => Web Service Client
- Tiếp tục chọn WSDL URL:
- Nhập đường dẫn của webservice vào. Nhớ là có ?WSDL nhé.
- Nhập Finish
- Nếu thành công bạn sẽ thấy thư mục Web Service References trong project của mình
5.3 Sử dụng webservice
Ở JFrame bạn cần sử dụng webservice chọn Source
Bạn mở thư mục Web Service References => Service => ServiceSoap
Tại đây có tất cả các method mà webservice hỗ trợ
Bạn cần sử dụng hàm nào thì chỉ cần nắm method đó kéo thả vào code bên khung bên phải.
Như ví dụ là phương thức add như vậy bên code sẽ tạo cho ta một phương thức add và sử dụng như bình thường.
Ví dụ method add này nhận 2 tham số kiểu int và trả về kiểu int
int tong = add(5, 7);
Đơn giản lắm đúng không?
6. Client Console Service Java
6.1 Tạo project console Java
Bước 1: Mở Netbeans
Bước 2: Chọn File -> New Project (Hoặc sử dụng tổ hợp phím tắt Ctr l+ N). Chọn Java => Java Application => Next
Bước 3: Đặt tên project và chọn nơi lưu.
Bước 4: Nhấn Finish
6.2 Thêm service client
Việc thêm webservice vào tương tự như trên Java App Form.
- Nếu chưa cài plugin SOAP Web Service vào netbeans, bạn cần cài Plugin vào:
Tools => Plugins => Availables Plugins => tích vào SOAP Web Service => Install (nhấn next,… và chờ khởi động lại netbeans)
- Click phải chuột vào project => New => Web Service Client
- Tiếp tục chọn WSDL URL:
- Nhập đường dẫn của webservice vào. Nhớ là có ?WSDL nhé.
- Nhập Finish
- Nếu thành công bạn sẽ thấy thư mục Web Service References trong project của mình
6.3 Sử dụng webservice
Bạn mở file cùng tên với project của bạn.
Bạn mở thư mục Web Service References => Service => ServiceSoap
Tại đây có tất cả các method mà webservice hỗ trợ
Bạn cần sử dụng hàm nào thì chỉ cần nắm method đó kéo thả vào code bên khung bên phải.
Như ví dụ là phương thức add như vậy bên code sẽ tạo cho ta một phương thức add và sử dụng như bình thường.
Ví dụ method add này nhận 2 tham số kiểu int và trả về kiểu int
package consolejava; import java.util.Scanner; public class ConsoleJava { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int so1 = 0, so2 = 0; // Nhập vào hai số System.out.print("Nhập số thứ nhất: "); so1 = Integer.parseInt( scanner.nextLine() ); System.out.print("Nhập số thứ hai: "); so2 = Integer.parseInt( scanner.nextLine() ); //hiển thị kết quả System.out.print("Tổng: " + add(so1, so2)); } private static int add(int a, int b) { org.tempuri.Service service = new org.tempuri.Service(); org.tempuri.ServiceSoap port = service.getServiceSoap(); return port.cong(a, b); } }
6.4 Một số lệnh của console Java
6.4.1 Lệnh xuất dữ liệu ra màn hình
System.out.print(); System.out.println();
6.4.2 Lệnh nhập dữ liệu
Trước tiên cần tạo đối tượng Scanner trong hàm main và import thư viện Scanner
package consolejava; import java.util.Scanner; public class ConsoleJava { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); } }
Sau đó từ đối tượng Scanner bạn tiến hành chấm đến phương thức cần sử dụng
scanner.nextLine() scanner.nextInt() scanner.nextFloat() ...
7. Tạo Webservice trên Java
7.1 Những cài đặt ban đầu
Những thứ bạn cần cài:
- SOAP WebService
- Webserver: GlassFish hoặc TomCat (Lưu ý: cài 1 trong 2 thôi nhé)
7.1.1 SOAP WebService
- Nếu chưa cài plugin SOAP Web Service vào netbeans, bạn cần cài Plugin vào:
Tools => Plugins => Availables Plugins => tích vào SOAP Web Service => Install (nhấn next,… và chờ khởi động lại netbeans)
7.1.2 Cài GlassFish
Download GlassFish: https://download.oracle.com/glassfish/5.0/release/index.html và chọn glassfish-5.0.zip để download. Sau đó giải nén thư mục tải về.
Thêm Server GlassFish:
Bạn vào Windows => Service
Tại Tab Servies => Chuột phải lên Servers chọn Add Server
Sau đó chọn “GlassFish Server” => Next.
Chọn đường dẫn thư mục giải nén của GlassFish tải lúc nãy (nhớ là đi vào thêm một cấp thư mục nữa). Nhấn Next
Trường hợp bạn bị lỗi “Not a valid GlassFish Server installation.” thì:
- Bạn download gói thư viện GlassFish bản thấp hơn 5.0 và thực hiện lại từ đầu phần này.
- Sử dụng TomCat bên dưới
- Gỡ Netbeans và cài lại.
Nếu không lỗi thì tiếp tục nhé!
Để cấu hình mặc định => Finish
Bật Server lên:
Tại Tab Servies => Chuột phải lên Servers GlassFish chọn Start
7.1.3 Cài TomCat
Nếu cài được GlassFish phía trên thì khỏi cần phải cài thêm TomCat nhé. Trường hợp cài lỗi thì mình sử dụng TomCat.
Bạn download source TomCat về máy tại đường dẫn: https://tomcat.apache.org/download-80.cgi (chọn phiên bản phù hợp 32bit, 64bit tùy máy bạn nhé). Sau đó giải nén.
Thêm Server Tomcat:
Bạn vào Windows => Service
Tại Tab Servies => Chuột phải lên Servers chọn Add Server
Sau đó chọn “Apache Tomcat” hoặc “Apache Tomcat or TomEE” tùy phiên bản netbeans bạn cài => Next.
Chọn đường dẫn thư mục lúc nãy bạn giải nén tại và nhớ vào thêm một cấp thư mục nữa. Đặt usename, password. Nhấn Finish
Bật Server lên:
Tại Tab Servies => Chuột phải lên Servers TomCat chọn Start
Nếu gặp lỗi “‘127.0.0.1*’ is not recognized as an internal or external command, operable program or batch file.” Bạn khắc phục như sau:
7.2 Tạo Project Web
Chọn File -> New Project từ menu -> chọn Java Web -> chọn Web Application -> chọn Next.
Tại Nhập tên project tại Project Name, nhập JavaWebApplication. Chọn nơi lưu trữ project tại Project Location -> chọn Next.
Lựa chọn Server: (Lúc nãy bạn cài GlassFish thì chọn GlassFish, Tomcat chọn Tomcat nhé) và Java EE Version: Java EE 7 Web -> chọn Next
Tại màn hình kế tiếp chọn Finish
7.3 Tạo webservice
Chuột phải tại tên project -> chọn New -> chọn Web Service…
Đặt tên webservice tại Web Service Name và đặt tên package tại Package và nhấn Finish.
Bên project bạn sẽ thấy xuất hiện thư mục Web Service và bên trong là tên webservice bạn đặt tên lúc nãy.
Đến đây bạn cần build project trước khi viết webservice. Chọn nút Run trên thanh công cụ của netbeans.
Build xong chương trình sẽ mở một web trong trình duyệt, bạn cứ tắt trình duyệt và tiếp tục nhé.
7.4 Thêm phương thức cho webservice
Thêm Phương thức cho Webservice
Nháy chuột phải vào tên webservice => Add Operation …
Nhập tên phương thức và kiểu trả về. Nếu khác kiểu string, bạn nhấn Browser để chọn kiểu dữ liệu (lưu ý là chọn tên của kiểu dạng đầy đủ. Ví dụ kiểu int thì là integer ) và nhấn OK.
Đến đây bạn viết hàm như bình thường. Ví dụ như trên là hàm tổng mình truyền hai tham số và trả về tổng của chúng. Mình viết như sau:
/** * Web service operation */ @WebMethod(operationName = "tong") public Integer tong(int a, int b) { //TODO write your implementation code here: return a + b; }
Viết xong bạn build lại project
Sau đó bạn chuột phải lên webservice => Test Web Service
Với GlassFish sẽ ra giao diện như thế này:
Còn Tomcat sẽ ra như thế này
Vì vậy, bạn thấy GlassFish sẽ tiện hơn cho ta khi test đúng không nào?
8. Kinh nghiệm
8.1 Vấn đề kêt nối webservice java vào C#
8.1.1 C# nhận webservice Java nhưng báo lỗi lock/readonly
Cách Sửa lỗi: Bạn vào Debug => Options and Setttings
Chọn Source Controll => None => OK
Và kết nối lại webservice thôi.
8.1.2 Câu lệnh khởi tạo thuần bị lỗi
Với Java là webservice lệnh kết nối không còn là:
WebService.ServiceSoapClient ws = new WebService.ServiceSoapClient();
mà sẽ được thay thành
WebService.webserviceClient ws = new WebService.webserviceClient();
Lưu ý: WebService là tên bạn đặt lúc thêm webservice vào
Đến đây cách xài như bình thường ws chấm đến phương thức cần sử dụng là ok.
8.2 Chuyển đổi kiểu dữ liệu
8.2.1 C#
//int, float, doutble,... to string int a = 5; String b = a.toString(); //string to int Int32.Parse() //string to float float.Parse() //string to double double.Parse()
8.2.2 Java
//int, float, doutble,... to String int a = 5; String b = String.valueOf(a); //String to int Integer.parseInt() //String to float Float.parseFloat() //String to double Double.parseDouble()
8.3 Sắp xếp mảng nhanh
8.3.1 C#
Sắp xếp tăng dần
Array.Sort(arr); // arr: tên mảng // ban đầu: arr => 1 4 5 -1 40 25 // sau khi sort: -1 1 4 5 25 40
Sắp xếp giảm dần
Array.Reverse(arr); // arr: tên mảng // ban đầu: arr => 1 4 5 -1 40 25 // sau khi sort: 40 25 5 4 1 -1
8.3.2 Java
Sắp tăng dần
Arrays.sort(arr);
Sắp giảm dần
Bạn copy hàm này vào để sử dụng nhé!
public static void reverse(int[] input) { int last = input.length - 1; int middle = input.length / 2; for (int i = 0; i <= middle; i++) { int temp = input[i]; input[i] = input[last - i]; input[last - i] = temp; } }
8.4 Duyệt nhanh mảng
8.4.1 C#
foreach (int i in arr) result += " " + i; // tương tự với //for(int i =0; i<arr.Length; i++) // result += " " + arr[i];
8.4.2 Java
for(int i : arr) result += " " + i;
8.5 Lỗi Unable to open web service tester page (Khi test webservice java)
Khi test webservice java nếu bị lỗi này thì fix như sau:
Bài viết tham khảo: https://netbeans.org/kb/docs/websvc/jax-ws.html#extschema
Cách fix:
- Vào thư mục cài đặt netbeans => mở file netbeans.conf: C:\Program Files\NetBeans 6.8\etc\netbeans.conf
- Dán đoạn code bên dưới vào mục netbeans_default_options. Và lưu lại.
-J-Djavax.xml.accessExternalSchema=all
- Mở thư mục cài server glassfish => mở file domain.xml: GLASSFISH_INSTALL/glassfish/domains/domain1/config/domain.xml
- Dán đoạn code bên dưới trong thẻ </java-config> và lưu lại.
<java-config> ... <jvm-options>-Djavax.xml.accessExternalSchema=all</jvm-options> </java-config>
- Khởi động lại glassfish trong netbeans
- Nháy chuột phải và project => Deploy
8.6 Lỗi về cơ sở dữ liệu Linq
8.6.1 There was an error generating the XML document. —> System.InvalidOperationException: A circular reference was detected while serializing an object of type
Cách sửa lỗi:
8.7 Không sử dụng linq vẫn kết nối csdl phà phà
Có thể sử dụng class kết nối csdl để sử dụng câu lệnh sql thông thường mà không cần linq. File kết nối bạn xem mục 4 của bài viết: Những điều cơ bản về Winform C#.
connect ở các hàm bên dưới là tên đối tượng của class KN_CSDL
KN_CSDL connect = new KN_CSDL();
8.7.1 getAll
[WebMethod] public DataSet duLieuBoDeThi() { String sql = "SELECT * FROM tbl_bo_de_thi"; DataSet dt_bo_de = new DataSet(); dt_bo_de = connect.LayBang2(sql); return dt_bo_de; }
8.7.2 Thêm
[WebMethod] public bool taoBoDe(string tenBoDe) { String sql = "insert into tbl_bo_de_thi(ten_bo_de) values(N'" + tenBoDe + "')"; if (connect.CapnhatCSDL(sql)) { return true; } else return false; }
8.7.3 Sửa
[WebMethod] public bool capNhatBoDe(string tenBoDe, string id) { String sql = "update tbl_bo_de_thi set ten_bo_de=N'" + tenBoDe + "' where ma_bo_de='" + id + "'"; if (connect.CapnhatCSDL(sql)) { return true; } else return false; }
8.7.4 Xóa
[WebMethod] public bool xoaBoDe(string id) { String sql = "delete from tbl_bo_de_thi where ma_bo_de=N'" + id + "'"; if (connect.CapnhatCSDL(sql)) { return true; } else return false; }
8.7.5 Get By ID
[WebMethod] public DataSet getBoDeByID(string id) { String sql = "select * from tbl_bo_de_thi where ma_bo_de='" + id + "'"; DataSet bode_table = new DataSet(); bode_table = connect.LayBang2(sql); return bode_table; }
8.7.6 Thư viện kết nối csdl
using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Web; /// <summary> /// Summary description for KN_CSDL /// </summary> public class KN_CSDL { SqlConnection sqlketnoi; SqlCommand sqllenh; public KN_CSDL() { sqlketnoi = new SqlConnection(); //string chuoiketnoi = "Data Source =.; Initial Catalog = QLHH; Integrated Security = True"; string chuoiketnoi = @"Data Source=TRONGHAO-PC\SQLEXPRESS;Initial Catalog=QLHH;Integrated Security=True"; sqlketnoi.ConnectionString = chuoiketnoi; sqllenh = new SqlCommand(); } public bool Moketnoi() { try { sqlketnoi.Open(); return true; } catch { return false; } } public void Dongketnoi() { sqlketnoi.Close(); } public bool CapnhatCSDL(string str) { try { this.Moketnoi(); sqllenh.Connection = sqlketnoi; sqllenh.CommandText = str; sqllenh.ExecuteNonQuery(); this.Dongketnoi(); return true; } catch { return false; } } public DataTable LayBang(string str) { this.Moketnoi(); SqlDataAdapter bodocghi = new SqlDataAdapter(str, sqlketnoi); DataTable bang = new DataTable(); bodocghi.Fill(bang); this.Dongketnoi(); return bang; } public DataSet LayBang2(string str) { this.Moketnoi(); SqlDataAdapter bodocghi = new SqlDataAdapter(str, sqlketnoi); DataSet bang = new DataSet(); bodocghi.Fill(bang); this.Dongketnoi(); return bang; } public string mahoa(string pass) { return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(pass.Trim(), "SHA1"); } }
8.7.7 Sql lấy data bỏ qua n dòng
select * from NHANVIEN as nv where nv.MaNV not in ( select top 2 MaNV from NHANVIEN ) --số 2 thay thành số dòng muốn bỏ
8.7.8 Sql lấy n dòng cuối danh sách
declare @sl int select @sl = (count(*) - 1) from NHANVIEN select * from NHANVIEN as nv where nv.MaNV not in ( select top (@sl) MaNV from NHANVIEN )
8.8 Lấy data webservice trả về đổ vào DataTable
DataSet dtSet = new DataSet(); dtSet = ws.duLieuBoDeThi(); DataTable nguoidung_table = new DataTable(); nguoidung_table = dtSet.Tables[0];
- Webservice phải trả về kiểu dữ liệu DataSet
- DataSet là một container chứa nhiều DataTable do đó ta lấy Tables[0] đổ vào DataTable là dữ liệu cần tìm
- Xem thêm về DataSet, DataTable tại bài viết: https://laptrinhvb.net