Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > .NET Framework > Forum > ช่วยหน่อยครับ อธิบาย syntax และหลักการทำงานโค้ด web service นี้หน่อย



 

ช่วยหน่อยครับ อธิบาย syntax และหลักการทำงานโค้ด web service นี้หน่อย

 



Topic : 103218



โพสกระทู้ ( 19 )
บทความ ( 0 )



สถานะออฟไลน์




จาก https://www.thaicreate.com/community/asp-net-web-service-database-dataset-datatable.html
การเขียนเว็บเซอร์วิสรับ-ส่งข้อมูลจาก Database ผ่าน DataSet และ DataTable

Code
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.ComponentModel;
using System.Data.SqlClient;

// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// <System.Web.Script.Services.ScriptService()> _
[System.Web.Services.WebService(Namespace = "http://tempuri.org/")]
[System.Web.Services.WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
public class getCustomerDetail : System.Web.Services.WebService
{

	[WebMethod()]
	public DataTable DetailCustomer(string strCusID)
	{
		SqlConnection objConn = new SqlConnection();
		SqlCommand objCmd = new SqlCommand();
		SqlDataAdapter dtAdapter = new SqlDataAdapter();

		DataSet ds = new DataSet();
		DataTable dt = null;
		string strConnString = null;
		StringBuilder strSQL = new StringBuilder();

		strConnString = "Server=localhost;UID=sa;PASSWORD=;database=mydatabase;Max Pool Size=400;Connect Timeout=600;";

		strSQL.Append(" SELECT * FROM customer ");
		strSQL.Append(" WHERE [CustomerID] = '" + strCusID + "' ");

		objConn.ConnectionString = strConnString;   
		var _with1 = objCmd;
		_with1.Connection = objConn;
		_with1.CommandText = strSQL.ToString();
		_with1.CommandType = CommandType.Text;
		dtAdapter.SelectCommand = objCmd;

		dtAdapter.Fill(ds);
		dt = ds.Tables[0];

		dtAdapter = null;
		objConn.Close();
		objConn = null;

		return dt;

	}

}


พอดีนำไปประยุกต์ใช้ได้แล้ว แต่ยังไม่เข้าใจการทำงาน เลย ช่วยหน่อยนะครับ



Tag : .NET, Web (ASP.NET), C#







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-12-01 05:12:00 By : zherzhaa View : 826 Reply : 2
 

 

No. 1



โพสกระทู้ ( 697 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

มันก็คือ Method ที่อยู่ฝั่ง Web Server ให้ Win App ฝั่ง Client เรียกใช้งาน ส่วนการทำงานในโค้ดคร่าว ๆ ดังนี้

อธิบายเริ่มตั้งแต่บรรทัด
Code (C#)
public class getCustomerDetail : System.Web.Services.WebService

ไล่ลงมาเรื่อยๆ

1. ประกาศสร้างคลาสชื่อ getCustomerDetail สืบทอดมาจากคลาส System.Web.Services.WebService

2. สร้างเว็บเมธอดชื่อ DetailCustomer ซึ่งรับพารามิเตอร์ชื่อ strCusID เข้ามาประมวลผลต่อ และคืนค่ากลับไปเป็น DataTable

Code (C#)
SqlConnection objConn = new SqlConnection();
SqlCommand objCmd = new SqlCommand();
SqlDataAdapter dtAdapter = new SqlDataAdapter();


3. ประกาศตัวแปรอ๊อปเจ็ก Connection(ตัวแปรเชื่อมต่อฐานข้อมูล)
, Command(ตัวแปรใส่คำสั่งคิวรี่) , Adapter(ตัวจัดการ Update Insert Select Delete) พร้อมกับสร้างอินสแตน

4. ประกาศตัวแปรอ๊อปเจ็ก Dataset พร้อมกับสร้างอินสแตน

5. ประกาศตัวแปร DataTable พร้อมกำหนดค่า Null

6. ประกาศตัวแปร String ชื่อ strConnString พร้อมกำหนดค่า Null

7. ประกาศตัวแปร StringBuilder(คลาส String ชนิดหนึ่ง ซึ่งจะเชื่อมข้อความได้เร็วกว่าใช้ String + String)
ชื่อ strSQL พร้อมทั้งสร้างอินสแตน

8. กำหนดข้อความที่ใช้ในการเชื่อมต่อกับฐานข้อมูลให้กับตัวแปร strSQL

Code (C#)
strSQL.Append(" SELECT * FROM customer ");
strSQL.Append(" WHERE [CustomerID] = '" + strCusID + "' ");


9. คิวรี่ Select ข้อมูลทุกคอลัมป์จากตาราง customer ที่ฟิล CustomerID มีค่าเท่ากับ ค่าในตัวแปร strCusID ที่รับมา

Code (C#)
objConn.ConnectionString = strConnString; 

10. กำหนดข้อความเชื่อมต่อฐานข้อมูลให้กับตัวแปร objConn

Code (C#)
var _with1 = objCmd;
_with1.Connection = objConn;
_with1.CommandText = strSQL.ToString();
_with1.CommandType = CommandType.Text;
dtAdapter.SelectCommand = objCmd;


ตรงนี้ไม่แน่ใจว่ามีทำไม แต่ถ้ากำหนดก็น่าจะกำหนดให้ตัวแปร objCmd ไม่ต้องใช้ _with1 ก็ได้

11. กำหนด objCmd(คำสั่งคิวรี่) ให้กับ dtAdapter(ตัวจัดการฐานข้อมูล)

Code (C#)
dtAdapter.Fill(ds)

12. Select ข้อมูลจากฐานข้อมูลมาใส่ใน Dataset

Code (C#)
dt = ds.Tables[0];

13. กำหนดตารางแรกใน Dataset ให้ Datatable

Code (C#)
dtAdapter = null;
objConn.Close();
objConn = null;

14. ปิดการเชื่อมต่อและกำหนดค่าตัวแปรให้เป็น null เพื่อคืนทรัพยากรให้แก่ระบบ

15. return dt (คืนค่า Datatable กลับไปให้ตรงที่เรียกเมธอดนี้)








แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-01 14:00:49 By : 01000010
 


 

No. 2



โพสกระทู้ ( 19 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : 01000010 เมื่อวันที่ 2013-12-01 14:00:49
รายละเอียดของการตอบ ::
ขอบคุณมากๆ เลยครับ ><

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-01 21:16:23 By : zherzhaa
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ช่วยหน่อยครับ อธิบาย syntax และหลักการทำงานโค้ด web service นี้หน่อย
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่