100 likes | 181 Views
การ ใช้งานคำสั่ง SqlTransaction การทำงานเกี่ยวกับไฟล์ การ update ข้อมูลในฐานข้อมูล. สร้างตารางเพิ่มเติม. สร้างตารางโดยไปที่ Database explorer > table > add new table กำหนดให้ สร้างตาราง UserPic เก็บ ข้อมูลรูปภาพของผู้ใช้งาน. สร้างคอนโทรล FileUpload ในหน้า Register.aspx.
E N D
การใช้งานคำสั่งSqlTransactionการทำงานเกี่ยวกับไฟล์การ update ข้อมูลในฐานข้อมูล
สร้างตารางเพิ่มเติม • สร้างตารางโดยไปที่ Database explorer> table > add new table • กำหนดให้สร้างตารางUserPicเก็บข้อมูลรูปภาพของผู้ใช้งาน
สร้างคอนโทรล FileUploadในหน้า Register.aspx • ในหน้า Register.aspx เพิ่มคอนโทรลFileUpload สำหรับให้ผู้ใช้เลือกรูปภาพของตนเอง • การ insert ข้อมูลสมัครสมาชิกในหน้านี้จะ insert ข้อมูลต่างๆ ลงไปพร้อมกัน 2 ตาราง คือ ตาราง User(insert ข้อมูลทุกตัวยกเว้น picture)และตารางUserPic(insert เฉพาะ username กับ picture) เป็นการ insert ข้อมูลแบบTransaction การ insert ข้อมูลแบบTransaction นี้ ควรจะต้อง insert ตารางใดก่อน?
คำสั่งต่างๆ ที่เกี่ยวข้องกับการใช้งานSqlTransaction ประกาศการเริ่มต้นใช้งานSqlTransaction SqlTransactiontransac = dbcon.conn.BeginTransaction(); ประกาศ SqlCommand ที่ต้องการใช้งานแบบ transaction SqlCommandcmd = new SqlCommand(); cmd.Transaction= transac; กำหนดค่าให้กับSqlCommandและสั่งประมวลผลSqlCommand นั้น (ตรงนี้สามารถสั่งได้หลาย Command)cmd.Connection= dbcon.conn; cmd.CommandText= “…….คำสั่งsqlที่ต้องการประมวลผล…….”; cmd.ExecuteNonQuery(); หากทำคำสั่งSqlCommandที่ระบุไว้ข้างต้นสำเร็จทั้งหมด ก็จะยืนยันการกระทำคำสั่งทั้งหมดนั้น transac.Commit(); หากทำคำสั่งSqlCommandที่ระบุไว้ข้างต้นคำสั่งใดไม่สำเร็จก็ตาม ก็จะยกเลิกการกระทำคำสั่งทั้งหมดนั้นtransac.Rollback();
แก้ไขโค้ดปุ่ม Register ในหน้า Register.aspx โดยให้ insert ข้อมูล transaction พร้อมกันทั้งสองตาราง
การอัพโหลดไฟล์ไปยัง server • เพิ่มคำสั่งด้านล่างนี้ลงไปในโค้ดของปุ่ม register ในส่วนของ try //เช็คก่อนว่ามีไฟล์ที่ผู้ใช้ต้องการอัพโหลดจริง if(FileUpload1.HasFile==true) { //ดึงชื่อไฟล์จากเครื่อง client stringfn=System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName); //กำหนดว่าต้องการวางไว้ที่พาธใดบน server stringsavelocation=Server.MapPath("Image") +"\\"+fn; //Save ไฟล์นั้นมาวางไว้บน serverตามตำแหน่งที่ต้องการ FileUpload1.PostedFile.SaveAs(savelocation); }
Property ต่างๆ ของไฟล์ • FileUpload1.HasFile //ตรวจสอบว่ามีไฟล์อยู่หรือไม่ • FileUpload1.PostedFile.ContentLength; //ตรวจสอบว่าไฟล์มีขนาดเท่าใด(byte) • FileUpload1.PostedFile.ContentType;//ตรวจสอบว่าเป็นไฟล์ประเภทใด (eg. jpg,bmp,doc)
แบบฝึกหัด:เมื่อผู้ใช้เข้าระบบแล้วสามารถแก้ไขข้อมูลรหัสผ่านได้แบบฝึกหัด:เมื่อผู้ใช้เข้าระบบแล้วสามารถแก้ไขข้อมูลรหัสผ่านได้ • เลือกหน้าเว็บของผู้ใช้ที่ต้องการ(หน้าใดก็ได้)ขึ้นมา 1 หน้า เช่น admin.aspx • เพิ่ม textbox สำหรับการแก้ไขรหัสผ่านลงไป ดังรูป (อาจมีการให้ยืนยันรหัสผ่านโดยตรวจสอบคู่กับ validation control)
แบบฝึกหัด:เขียนคำสั่งในการ update password ที่ปุ่ม submit protectedvoidbtnSubmit_Click(objectsender, EventArgse){ try{ // เขียนคำสั่งการ updatepassword ลงในบริเวณนี้ Label1.Text=“Update ข้อมูลสำเร็จ"; } catch (Exceptione1) { Label1.Text=“Update ข้อมูลไม่สำเร็จ"+e1.ToString(); } }