การใช้งานคำสั่ง 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 SqlTransaction transac = dbcon.conn.BeginTransaction(); ประกาศ SqlCommand ที่ต้องการใช้งานแบบ transaction SqlCommand cmd = 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 แก้ไขโค้ดปุ่ม Register ในหน้า Register.aspx โดยให้ insert ข้อมูล transaction พร้อมกันทั้งสองตาราง
การอัพโหลดไฟล์ไปยัง server เพิ่มคำสั่งด้านล่างนี้ลงไปในโค้ดของปุ่ม register ในส่วนของ try //เช็คก่อนว่ามีไฟล์ที่ผู้ใช้ต้องการอัพโหลดจริง if (FileUpload1.HasFile == true) { //ดึงชื่อไฟล์จากเครื่อง client string fn = System.IO.Path.GetFileName(FileUpload1.PostedFile .FileName); //กำหนดว่าต้องการวางไว้ที่พาธใดบน server string savelocation = 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 protected void btnSubmit_Click(object sender, EventArgs e) { try { // เขียนคำสั่งการ update password ลงในบริเวณนี้ Label1.Text = “Update ข้อมูลสำเร็จ" ; } catch (Exception e1) { Label1.Text = “Update ข้อมูลไม่สำเร็จ" + e1.ToString();