Bước 1: Trong SSMS, tạo mới một... Bước 2: Trong project WEB API, mởServer Explorer và Tạo mới kết nối.... Bước 4: Trong Properties của kết nốiCopy giá trị mục Connection String.... Bước
Trang 1WEB API CONNECT TO SQL SERVER
-Phạm Nhật Duy
Email: duypn@uit.edu.vn
Trang 2Bước 1: Trong SSMS, tạo mới một
Trang 3Bước 2: Trong project WEB API, mởServer Explorer và Tạo mới kết nối.
Trang 4Bước 3: Đăng nhập vào SQL Server
và chọn CSDL muốn kết nối đến
Trang 5Bước 4: Trong Properties của kết nốiCopy giá trị mục Connection String.
Trang 6Bước 5: Mở file Web.config và thêmmới thẻ connectionStrings như hình.
6
Trang 7Bước 6: Tạo lớp Database.cs trong thư mục Database và viết hàm ReadTable.
using System;
u 5ing Sy stem ColLee tion s Gener i ;
using System Conf igurâtion;
public class Database
public static DataTable ReadTable(strỉng storedpro cedurehame^ Dictionaryistring^ object> para = null)
< L
string SQLCon n e c t ionSt ri ng = ConfigurationManager Con n e ct ionSt r i ng s [ "Q LBSConn ectionSt ri n g'' ] Con n e ctionSt r ing ;
SqlConnection connectỉơn = new SqlConnection(SQLConnectionString) ;
connect ion Ope n();
// Create andl Assign propertỉes for command SqlCommand sqlCmd = cữnnectiữn.CreateConimand() ;
Trang 8Bước 6: Viết hàm ReadTable (tt).
// Check parameters in stored Procedure
Trang 9Bước 7: Tạo thư mục Images để lưutrữ hình ảnh trong project WEB API.
Trang 11ra KTO0Q1.jpg
Q KTDDD2.jpg E3 KTŨŨŨỊÌpg
Trang 12Bước 8: Trong SSMS, tạo các bảng
Trang 13ECREATE TABLE [dbo].[CHU_DE] (
[Mcd] [int] IDENTITY(ljl) NOT NULL,
Trang 14[Ten_chu_de] [nvarchar](50) NULLj
[PID] [int] NULL,
CONSTRAẼNT [PK_CHU_DE] PRIMARY KEY CLUSTERED
Trang 15sử dụng cuốn 30 phút mỗi ngày để luyện kỹ năng viết câu tiếng Anh này sẽ giúp học sinh/sinh viên viết “ti
[Ten_sach], [Don_gía], [Don_vi_tinh] , [Mo_ta], [Hinh_minh_hoa] , [Mcd], [Mnxb]
• N' http: //192 ■ 168 ■ 1■ 26/^ebapidemo/Imaees/KT0001 ■ ipe ' , 10 , 8 cAST ( N' 2004- 0'
[Ten_sach], [Dongia], [Don_vi_tinh] , [Mo_ta], [Hinh_mỉnh_hoa] , [Mcd], [Mnxb]
■ , N' http: //192 168.1.26/webapídemo/Imaees/KT0061 ■ ịpẹ ', 10, 3 cAST ( N' 2004 -0:
[Ten_sach], [Dongia], [Don_vỉ_tinh] , [Mo_ta], [Hỉnhmỉnhhoa] , [Mcd], [Mnxb]
ỄINSERT [dbo] [SACH] ([Ms]
I: Tống quan vè công nghệ mạng máy tính và mạng cục bộ.
II: Các thiết bị mạng thông dụng và các chuẩn kết nõỉ vật lý.
III: TCP/IP và mạng Internet.
IV: Hệ điẽu hành mạng đặc điếm của hệ đièu hành mạng.
EINSERT chương Chươn g Chươn g Chươn g
Chương V: Một số vấn đề an toàn vã bào mật thông tin trên mạng máy tính.
Chương VI: Giới thiệu hệ điều hãnh Windows NT.
Trang 16Bước 10: Trong SSMS, viết
Stored Procedure để lấy dữ liệu
/****** object: StoredProcedure [dbo] [Proc_GetAllSubject ]
SET ANSINULLS ON GO
SET QỊJOTED_IDENTIFIER ON GO
Trang 17Bước 11: Trong file Controller, viếtcác API gọi tới Stored Procedure.
Trang 18Bước 11: Trong file Controller, viết
các API gọi tới Stored Procedure (tt)
Dictiữnary<string ? object> param = nẹw Dictionaryístring, object>();
param Add( "macd" , macd);
DcTaTasle result = Dc'zabase.Dc'zabase.ReadTEslE-("P''cc_G?'z3oo<sBySubjectID rr
Trang 19}
Trang 20Bước 12: Publish WEB API và xemkết quả trên Browser.
ASPNET Web API Help
Trang 21Bước 13: Sử dụng Postman để kiểmtra các API.
Trang 22Bước 13: Sử dụng Postman để kiểmtra các API (tt)
Trang 23Bước 14: Tạo 1 ứng dụng Xamarin vàviết code cho trang MainPage.xaml.
<StackLayouit>
<Label Text="Welcome to Xamarin Forms ! " x: Name= ' LblHello" FontSize="20"
HonỉzontalOptions="Center" VerticalOptions="CenterAiìdExpand r '></Label>
<Birtton X : Nafĩie="Cm<HelloWEBAPI " Text = "l Chào Web API"
FontSize="20" Clicked="CniíHellDWEBAPI_Clicked" ></Bưtton>
<Birtton x:llame="CmílSubjectList" Text="2 Danh sách chủ đẽ"
FontSize="20" Clicked="CmílSubjectList_Clicked" ></Bưtton>
</StackLayout>
Trang 24Bước 15: Tạo 2 lớp Subject và Book với các
thuộc tính GIỐNG trong SQL Server.
public class Bũok
{
- referen ces public int Ms { get; set" }
- rEÍeren CBS public string Tensach { getj set; }
- referen ces public doLible Don_gia { get; set; }
0 netenencBỉ public stririg Don_vi_tinh { getj set; }
0 neterencBS
public stririg Mo_ta { getj set; }
0 reterencBS public stririg Hinh_minh_bod { get; set; }
0 reĩerences public int So_luong_ban { get; set; }
0 references public int Sọ_lan_xeni { get; set; }
Trang 25Bước 16: Vào Nuget Packages và càiđặt gói Newtonsoft.Json.
NuGet Package Manager: AppTestWEBAPI
Trang 26Version: Latest stable 13.0.1 ’ Install
Date published: Tuesday, March 23, 2021 (3/23/2021)
Project URL: https://www.newtonsoft.com/json
13.0.1
Package source: nuget.org *
NeWt0ns0ft.Js0n.Bs0n © byJames Newton-Kĩng, 164M downloads
Json.NET BSON adds support for reading and writing BSON
1.0.2
Microsoft.AspNetCore.Mvc.NewtonsoftJson © by Microsott, 97.5M downloads 6.0.0
ASP.NET Core MVC features that use Newtonsoft.Json Includes input and output formatters for
JSON and JSONPA1CH.
Each package is licensed to you by its owner NuGet is not responsible for, nor does it grant any licenses to,
third-party packages.
21 Do not show this again
Trang 27Bước 17: Viết code xử lý cho sự kiện Clicked
của button 2 Danh sách chủ đề.
0 rEĨEnences
Navigation PushAsync (new PageSubjectList( )) J
Trang 28Bước 18: Viết code cho phần giaodiện của trang PageSubjectList.
Trang 29Bước 19: Viết code cho phần xử lý
}
D rrterencM
}
Trang 30Bước 20: Viết code cho phần giao
diện của trang PageBooksBySubject
< RowDef inition ></RowDefinỉtỉon >
< RũwDef i n it ion > < /RowDef i n i t ion >
</Grid RơwDef ỉnitions>
<Grid.ColumnDefinitĩons>
<ColumnDe-Fĩnitiũn Width='' x ''x/CũliJinnDe-Fĩnĩtỉon>
cColuinnDe-Pĩnition wictth="2*" x/ColumnDefinition>
c/Grid.ColumnDefĩnĩtionsi clmage Source="{Bindỉng Hinh minh hoa}" Grid Row="0" Grid.Columr = "ỡ" Grid RowSpan="2"x/Iniage>
(Label Text="{Bindỉng len sach}" Grid Rciw="0" Grid Coluinri="l"x/Label>
<Label Text="{Binding Don_gia}" Grid Row="ĩ" Grid.Colunin=' , l"x/Label>
Trang 31Bước 21: Viết code cho phần xử lýcủa trang PageBooksBySubject.
HttpClient httpClient = new HttpClientt) ;
va r bookL ĩst = awa it htt: pC 1 i e nt € etst ir i n gAs yn c ( "bztp : //192.168.1 26/i'.ebapìdeniũ/a3Ì/ServiceContrũller/GetBũũk5Bx'Sub'iectĩJ?inacd= "
+ 5ubjectID.ToString()
var bookListConverted = J5ũnCũnvert.DeserializeObject<LÌ5t<Boak>>(bookList)i
LstBook ItemsSource = bookListConverted;
}
Trang 32Bước 22: Chạy ứng dụng.
Trang 33Bước 23: Nhấn vào button 2 DANH
SÁCH CHỦ ĐỀ và xem kết quả.
Trang 34Bước 24: Nhấn vào 1 chủ đề bất
Trang 35Cảm ơn!
Trang 36Hỏi Đáp?