HOME > .NET Framework > ASP.NET เรียก PHP กับฐานข้อมูล MySQL ผ่าน Web Service และการรับส่งค่าผ่านเว็บเซอร์วิส
ASP.NET เรียก PHP กับฐานข้อมูล MySQL ผ่าน Web Service และการรับส่งค่าผ่านเว็บเซอร์วิส
ASP.NET เรียก PHP กับฐานข้อมูล MySQL ผ่าน Web Service และการรับส่งค่าผ่านเว็บเซอร์วิส บทความนี้จะใช้ Web Service ที่เป็น PHP กับ MySQL โดยอ้างอิงจากบทความ การทำ Login Form และ Update MySQL Data ผ่าน Web Service ด้วย PHP (NuSoap) แต่จะใช้ ASP.NET ในการเรียก Web Service ของ PHP เช่น การตรวจสอบ Login , ข้อมูล และการแก้ไข Update ข้อมูลที่อยู่บน Web Service ของ PHP
Screenshot
หน้าจอเรียก Web Service ในการตรวจสอบการ Login ในหน้า Webpage ของ ASP.NET
หน้าจอสำหรับเรียกข้อมูลมาแสดงในหน้า Webpage ของ ASP.NET
หน้าจอแก้ไขข้อมูลบนหน้า Webpage ของ ASP.NET และข้อมูลจะถูกส่งไปอัพเดดที่ Web Service ฝั่ง Server
คำอธิบายเพิ่มเติม
สำหรับตัวอย่างนี้จะยกตัวอย่างเกี่ยวกับข้อมูลในตาราง MySQL ชื่อว่า customer ซึ่งจัดเก็บ CustomerID, Username, Password, Email, CountryCode, Budget, Used ซึ่งเปิดบริการ Service ไว้ 3 ตัวคือ
http://localhost/nusoap/WebServiceServer_Save.php?wsdl (ใช้สำหรับ Update ข้อมูลจาก Client เมื่อมีการแก้ไขและส่งข้อมูลใหม่มายัง Web Service ฝั่ง Server)
โดย User ในฝั่ง Client สามารถเขียน Web Service เพื่อตรวจสอบข้อมูล Username และ Password ผ่าน Form และเมื่อ Login ผ่าน ฝั่ง Client สามารถทำการเรียกข้อมูลรายละเอียดต่าง ๆ ของลูกค้า รวมทั้ง สามารถทำการแก้ไขข้อมูลใหม่ และส่งข้อมูลใหม่มายัง Web Service ฝั่ง Server ได้ (ดูภาพประกอบเพื่อความเข้าใจ)
ตั้งชื่อ Web reference name เป็น clsUpdateCustomer
หลังจากทำตามขั้นตอนทั้งหมดเรียบร้อยแล้ว ให้สร้าง Event ในแต่ล่ะ Form ดังนี้ (หรือจะดาวน์โหลด Code ทั้งหมดได้จากส่วนล่างของบทความ)
Screen frmLogin.aspx
- สำหรับ VB.NET
frmLogin.aspx.vb
Protected Sub btnLogin_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnLogin.Click
Dim clsLogin As New clsCustomerLogin.CustomerLogin
Dim myArr As Array = clsLogin.chkCustomerLogin(Me.txtUsername.Text, Me.txtPassword.Text)
If CStr(myArr(0)) = "1" Then
Session("strCustomerID") = myArr(1).ToString()
Response.Redirect("frmShow.aspx")
Else
Me.ClientScript.RegisterStartupScript(Me.GetType(), "myalert", "alert('" & myArr(2) & "');", True)
End If
End Sub
หน้าจอตรวจสอบ Username และ Password โดยจะส่งข้อมูลไปตรวจสอบยัง Web Service ฝั่ง Server
กรณีที่ Login ไม่ถูกต้อง จะมีการแสดง Error message ที่ถูกส่งมายัง Web Service ฝั่ง Server
Screen frmShow.aspx
- สำหรับ VB.NET
frmShow.aspx.vb
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If IsNothing(Session("strCustomerID")) Then
Response.Redirect("frmLogin.aspx")
Response.End()
End If
Dim cls As New clsGetCustomer.getCustomer
Dim myArr As Array = cls.resultCustomer(Session("strCustomerID"))
If myArr.Length > 0 Then
Me.lblCustomerID.Text = DataBinder.Eval(myArr(0), "CustomerID").ToString()
Me.lblUsername.Text = DataBinder.Eval(myArr(0), "Username").ToString()
Me.lblPassword.Text = DataBinder.Eval(myArr(0), "Password").ToString()
Me.lblName.Text = DataBinder.Eval(myArr(0), "Name").ToString()
Me.lblEmail.Text = DataBinder.Eval(myArr(0), "Email").ToString()
Me.lblCountryCode.Text = DataBinder.Eval(myArr(0), "CountryCode").ToString()
Me.lblBudget.Text = DataBinder.Eval(myArr(0), "Budget").ToString()
Me.lblUsed.Text = DataBinder.Eval(myArr(0), "Used").ToString()
End If
End Sub
หลังจาก Login ผ่านจะมีการเก็บ CustomerID ลงในตัวแปร Session และหลังจากนั้นก็จะ redirect มายังหน้า frmShow.aspx โดยหน้านี้จะเรียก Web Service ของ Server เพื่อดึงรายละเอียดของลูกค้ามาแสดง (ตามตัวอย่าง) ลองคลิกที่ Edit Your Profile เพื่อแก้ไขข้อมูล
Screen frmProfile.aspx
- สำหรับ VB.NET
frmProfile.aspx.vb
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If IsNothing(Session("strCustomerID")) Then
Response.Redirect("frmLogin.aspx")
Response.End()
End If
If Not Page.IsPostBack Then
BindData()
End If
End Sub
Protected Sub BindData()
Dim cls As New clsGetCustomer.getCustomer
Dim myArr As Array = cls.resultCustomer(Session("strCustomerID"))
If myArr.Length > 0 Then
Me.lblCustomerID.Text = DataBinder.Eval(myArr(0), "CustomerID").ToString()
Me.lblUsername.Text = DataBinder.Eval(myArr(0), "Username").ToString()
Me.txtPassword.Text = DataBinder.Eval(myArr(0), "Password").ToString()
Me.txtName.Text = DataBinder.Eval(myArr(0), "Name").ToString()
Me.txtEmail.Text = DataBinder.Eval(myArr(0), "Email").ToString()
Me.txtCountryCode.Text = DataBinder.Eval(myArr(0), "CountryCode").ToString()
Me.txtBudget.Text = DataBinder.Eval(myArr(0), "Budget").ToString()
Me.txtUsed.Text = DataBinder.Eval(myArr(0), "Used").ToString()
End If
End Sub
Protected Sub btnSave_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnSave.Click
Dim cls As New clsUpdateCustomer.UpdateCustomer
Dim myArr As Array = cls.saveUpdateCustomer(Session("strCustomerID"), _
Me.txtPassword.Text, _
Me.txtName.Text, _
Me.txtEmail.Text, _
Me.txtCountryCode.Text, _
Me.txtBudget.Text, _
Me.txtUsed.Text)
If CStr(myArr(0)) = "1" Then
Me.ClientScript.RegisterStartupScript(Me.GetType(), "myalert", "alert('Update Successfully ');window.location='frmShow.aspx';", True)
Else
Me.ClientScript.RegisterStartupScript(Me.GetType(), "myalert", "alert('Update Failed error..." & Replace(myArr(1), "'", "\'") & "');", True)
End If
End Sub