สร้างตัวอย่างนี้เนื่องจากฉันไม่สามารถหาคำอธิบายง่ายๆ สำหรับการใช้ MySQL 5 กับ ObjectDataSources ใน ASP.NET 2.0 ได้
การแนะนำ
ฉันสร้างตัวอย่างนี้เนื่องจากไม่พบคำอธิบายง่ายๆ สำหรับการใช้ MySQL 5 กับ ObjectDataSources ใน ASP.NET 2.0
บอกเลยว่าประทับใจ MySQL มาก ฉันสามารถติดตั้งมันได้อย่างง่ายดายบนเครื่อง Windows XP ของฉันและทำให้มันทำงานได้ภายในเวลาประมาณหนึ่งชั่วโมง ฉันเป็นผู้ใช้ MS SQL มาเป็นเวลานาน และรู้สึกหงุดหงิดมากกับการลองใช้ Oracle และ Firebird ฉันรู้ว่าปัญหาคือฉันนิสัยเสียจาก MS SQL Server แต่เดี๋ยวก่อน ฉันไม่ว่างและฉันชอบเครื่องมือที่ใช้งานง่าย :)
หากคุณเริ่มต้นใช้งาน MySQL และ ASP.NET ฉันขอแนะนำขั้นตอนเหล่านี้:
ไป ไปที่เว็บไซต์ MySQL ดาวน์โหลดและติดตั้ง “รุ่นปัจจุบัน (แนะนำ)”
ดาวน์โหลดและติดตั้ง: ผู้ดูแลระบบ MySQL (เพื่อจัดการเซิร์ฟเวอร์ MySQL ของคุณ การดาวน์โหลดครั้งแรกจะติดตั้งเฉพาะเซิร์ฟเวอร์เท่านั้น)
ดาวน์โหลดและติดตั้ง: Connector/Net 1.0 (คุณต้องใช้สิ่งนี้เพื่อรับเพจ ASP.NET ของคุณเพื่อพูดคุยกับเซิร์ฟเวอร์ MySQL ของคุณ)
คุณยังสามารถดาวน์โหลด: MySQL Query Browser – (ไคลเอนต์กราฟิกเพื่อทำงานกับฐานข้อมูล MySQL ของคุณและเรียกใช้แบบสอบถาม)
อ่านและปฏิบัติตามคำแนะนำนี้: คำแนะนำทีละขั้นตอนในการใช้ MySQL กับ ASP.NET
ในการติดตั้งโค้ด:
คุณต้องมี MySQL 5 และทำงานอยู่
ติดตั้ง MySQL Connector/Net 1.0
สร้างฐานข้อมูล MySQL 5 ชื่อ Test
สร้างตารางในฐานข้อมูลนั้นชื่อข้อความ:
สร้างตาราง test.message ( Entry_ID INT (10) UNSIGNED NOT NULL AUTO_INCREMENT, ชื่อ VARCHAR (45), อีเมล VARCHAR (45), ข้อความ VARCHAR (200), PRIMARY KEY (Entry_ID) ) AUTO_INCREMENT=32 CHARACTER SET latin1 COLLATE latin1_swedish_ci;
สร้างขั้นตอนการจัดเก็บ MySQL สี่ขั้นตอนเหล่านี้ในฐานข้อมูลทดสอบ:
ขั้นตอน `test`.`DeleteMessage`(IN param1 INT)BEGINลบจาก test.messageWHERE Entry_ID = param1;END
ขั้นตอน `test`.`InsertMessage`(IN param1 VARCHAR(50), IN param2 VARCHAR(50), IN param3 VARCHAR(200))BEGININSERT INTO message(Name, Email, Message)VALUES(param1,param2,param3);END
ขั้นตอน `test`.`ShowAll`()BEGINSELECT message.Entry_ID, message.Name, message.Email, message.MessageFROM test.message;END
ขั้นตอน `test`.`UpdateMessage`(IN paramkey INT, IN param1 VARCHAR(50), IN param2 VARCHAR(50), IN param3 VARCHAR(200))BEGIN UPDATE messageSET Name = param1, Email = param2, Message = param3WHERE (message. Entry_ID = พารามิเตอร์คีย์);END
แตกไฟล์ "MySQL" และกำหนดค่า IIS ให้ชี้ไป ตรวจสอบให้แน่ใจว่าคุณกำหนดค่าเว็บเซิร์ฟเวอร์เพื่อใช้ ASP.NET 2.0
เปิด "web.config" และเปลี่ยนบรรทัด:
เพื่อเชื่อมต่อกับฐานข้อมูล MySQL ของคุณ
เรียกดูหน้า default.aspx ผ่าน IIS
นี่คือคลาสที่ใช้ Generics เพื่อจัดหาข้อมูลที่ถูกใช้โดยตัวควบคุม ObjectDataSource:
การใช้ System;การใช้ System.Collections.Generic;การใช้ System.Data;การใช้ MySql.Data.MySqlClient;การใช้ System.Configuration;การใช้ System.ComponentModel ; [DataObject (true)] MessagesDB คลาสคงที่สาธารณะ { GetConnectionString สตริงส่วนตัวแบบคงที่ () { กลับ ConfigurationManager.ConnectionStrings ["MySQLConnectionString"].ConnectionString; } [DataObjectMethod(DataObjectMethodType.Select)] รายการคงที่สาธารณะ GetMessages() { MySqlCommand cmd = new MySqlCommand("ShowAll", new MySqlConnection(GetConnectionString())); cmd.CommandType = CommandType.StoredProcedure; cmd.Connection.เปิด(); MySqlDataReader dr = cmd.ExecuteReader (CommandBehavior.CloseConnection); รายการ MessageItemlist = รายการใหม่ (); ในขณะที่ (dr.Read()) { MessageItem MessageItem = new MessageItem(); MessageItem.Entry_ID = Convert.ToInt32(dr["Entry_ID"]); MessageItem.Message = Convert.ToString(dr["ข้อความ"]); MessageItem.Name = Convert.ToString(dr["ชื่อ"]); MessageItem.Email = Convert.ToString(dr["อีเมล"]); MessageItemlist.Add(รายการข้อความ); } dr.ปิด(); กลับรายการข้อความรายการ; } [DataObjectMethod (DataObjectMethodType.Insert)] โมฆะสาธารณะคงที่ InsertMessage (MessageItem MessageItem) { MySqlCommand cmd = new MySqlCommand ("InsertMessage", MySqlConnection ใหม่ (GetConnectionString ())); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(MySqlParameter ใหม่("param1", MessageItem.Name)); cmd.Parameters.Add(MySqlParameter ใหม่("param2", MessageItem.Email)); cmd.Parameters.Add(MySqlParameter ใหม่("param3", MessageItem.Message)); cmd.Connection.เปิด(); cmd.ExecuteNonQuery(); cmd.Connection.ปิด(); } [DataObjectMethod (DataObjectMethodType.Update)] int สาธารณะคงที่ UpdateMessage (MessageItem MessageItem) { MySqlCommand cmd = new MySqlCommand ("UpdateMessage", MySqlConnection ใหม่ (GetConnectionString ())); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(MySqlParameter ใหม่ ("paramkey", MessageItem.Entry_ID)); cmd.Parameters.Add(MySqlParameter ใหม่("param1", MessageItem.Name)); cmd.Parameters.Add(MySqlParameter ใหม่("param2", MessageItem.Email)); cmd.Parameters.Add(MySqlParameter ใหม่("param3", MessageItem.Message)); cmd.Connection.เปิด(); int i = cmd.ExecuteNonQuery(); cmd.Connection.ปิด(); ส่งคืนฉัน; } [DataObjectMethod(DataObjectMethodType.Delete)] int แบบคงที่สาธารณะ DeleteMessage(MessageItem MessageItem) { MySqlCommand cmd = new MySqlCommand("DeleteMessage", new MySqlConnection(GetConnectionString())); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(MySqlParameter ใหม่("param1", MessageItem.Entry_ID)); cmd.Connection.เปิด(); int i = cmd.ExecuteNonQuery(); cmd.Connection.ปิด(); ส่งคืนฉัน; -
คลาสข้างต้นใช้คลาส "MessageItem" เพื่อส่งพารามิเตอร์ไปและกลับจากการควบคุม ObjectDataSource:
การใช้ System;public class MessageItem{ int _Entry_ID; สตริง _ข้อความ; สตริง _ชื่อ; สตริง _อีเมล; MessageItem สาธารณะ () { } สาธารณะ int Entry_ID { รับ { return _Entry_ID; } ตั้งค่า { _Entry_ID = ค่า; } } ข้อความสตริงสาธารณะ { รับ { return _Message; } ตั้งค่า { _ข้อความ = ค่า; } } ชื่อสตริงสาธารณะ { รับ { return _Name; } ตั้งค่า { _ชื่อ = ค่า; } } อีเมลสตริงสาธารณะ { รับ { return _Email; } ตั้งค่า { _อีเมล = ค่า; -
นี่คือไฟล์ .aspx ที่มีตัวควบคุม ObjectDataSource รวมถึง GridView สำหรับการแก้ไขข้อมูล และ DetailView สำหรับการแทรกบันทึก: