วิธีการพื้นฐานในการเรียก Stored Procedure และใช้ค่าที่ส่งคืน
ผู้เขียน:Eve Cole
เวลาอัปเดต:2009-05-31 00:08:21
ฉันไม่เคยพบวิธีที่ดีในการอ้างอิงขั้นตอนการจัดเก็บด้วยค่าส่งคืน ซึ่งทำให้ฉันต้องออกนอกเส้นทางมากมายในการเพิ่มข้อมูล เมื่อเร็ว ๆ นี้หลังจากปรึกษาข้อมูลมากมาย ในที่สุดฉันก็พบมันในอินสแตนซ์ของ Microsoft
ขั้นแรกให้เขียน Stored Procedure ด้วยค่าที่ส่งคืน
สร้างขั้นตอน proc_name
@ para1 nchar (20), --พารามิเตอร์อินพุต
@para2 int = null out --output พารามิเตอร์สำหรับการใช้งานโปรแกรม
เช่น
ตั้งค่า nocount บน
ถ้า ( ไม่มีอยู่ (เลือก * จากพนักงาน โดยที่ em_name=@para1 ))
เริ่ม
แทรกลงในค่าพนักงาน (ชื่อ) (@para1)
เลือก @para2=@@identity --ส่งคืน ID ของบันทึกที่เพิ่ม
return 1 --คืนค่าว่าเพิ่มข้อมูลสำเร็จหรือไม่
จบ
อื่น
ส่งคืน 0 - ส่งคืนความล้มเหลว
ไป
จากนั้นก็มีวิธีเรียก Stored Procedure ออกมา
คำสั่ง sqlcommand;
command = new sqlcommand(proc_name,new sqlconnection(connectionstr));
command.paraments.add("@para1"),"name1"); //ป้อนพารามิเตอร์, ชื่อพนักงาน
command.paraments.add(new sqlparament("@para2", //สร้างพารามิเตอร์เอาต์พุต
SqlDbType.Int; //ชนิดข้อมูลพารามิเตอร์
ParamenterDirection.OutPut, //ประเภทอินพุตและเอาต์พุต
0,
0,
สตริงว่าง,
DataRowVerstion.ค่าเริ่มต้น
null) //ค่าพารามิเตอร์ จำเป็นเมื่อป้อนพารามิเตอร์
-
command.commandtype=commandtype.StoredProcedure;
คำสั่งการเชื่อมต่อ.เปิด();
command.executenonQuery();
int pkid=(int)command.Parameters["@para2"].value; // รับค่าของพารามิเตอร์เอาต์พุต
คำสั่งการเชื่อมต่อ.ปิด();
นี่คือพารามิเตอร์เอาต์พุตอ้างอิง หากคุณต้องการอ้างอิงค่าที่ส่งคืน (ไม่ว่าจะเพิ่มข้อมูลสำเร็จหรือไม่) คุณจะต้องเปลี่ยนประเภทของ ParamenterDirection เป็นค่าส่งคืนด้วยตนเอง