создал этот пример, потому что не смог найти простого объяснения использования 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 – (графический клиент для работы с базами данных MySQL и выполнения запросов).
Прочтите и следуйте этому руководству: Пошаговое руководство по использованию MySQL с ASP.NET.
Чтобы установить код:
У вас должен быть запущен MySQL 5.
Установите MySQL Connector/Net 1.0.
Создайте базу данных MySQL 5 с именем Test.
Создайте в этой базе данных таблицу под названием «Сообщение»:
CREATE TABLE test.message ( Entry_ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, Имя VARCHAR(45), Электронная почта VARCHAR(45), Сообщение VARCHAR(200), ПЕРВИЧНЫЙ КЛЮЧ (Entry_ID) ) AUTO_INCREMENT=32 НАБОР СИМВОЛОВ latin1 COLLATE latin1_swedish_ci;
Создайте эти четыре хранимые процедуры MySQL в тестовой базе данных:
ПРОЦЕДУРА `test`.`DeleteMessage`(IN param1 INT)BEGINDУдалить из test.messageWHERE Entry_ID = param1;END
ПРОЦЕДУРА `test`.`InsertMessage`(В параметре 1 VARCHAR(50), В параметре 2 VARCHAR(50), В параметре 3 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))BEGINUPDATE 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() { return ConfigurationManager.ConnectionStrings ["MySQLConnectionString"].ConnectionString; } [DataObjectMethod(DataObjectMethodType.Select)] public static List GetMessages() { MySqlCommand cmd = new MySqlCommand("ShowAll", new MySqlConnection(GetConnectionString())); cmd.ТипКоманды = ТипКоманды.СохраненнаяПроцедура; cmd.Connection.Open(); MySqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); Список MessageItemlist = новый список (); в то время как (dr.Read()) {MessageItem MessageItem = новый MessageItem(); MessageItem.Entry_ID = Convert.ToInt32(dr["Entry_ID"]); MessageItem.Message = Convert.ToString(dr["Сообщение"]); MessageItem.Name = Convert.ToString(dr["Name"]); MessageItem.Email = Convert.ToString(dr["Email"]); СписокЭлементовСообщений.Добавить(ЭлементСообщения); } Др.Закрыть(); вернуть список элементов сообщений; } [DataObjectMethod(DataObjectMethodType.Insert)] public static void InsertMessage(MessageItem MessageItem) { MySqlCommand cmd = new MySqlCommand("InsertMessage", новый MySqlConnection(GetConnectionString())); cmd.ТипКоманды = ТипКоманды.СохраненнаяПроцедура; cmd.Parameters.Add(new MySqlParameter("param1", MessageItem.Name)); cmd.Parameters.Add(new MySqlParameter("param2", MessageItem.Email)); cmd.Parameters.Add(new MySqlParameter("param3", MessageItem.Message)); cmd.Connection.Open(); cmd.ExecuteNonQuery(); cmd.Соединение.Закрыть(); } [DataObjectMethod(DataObjectMethodType.Update)] public static int UpdateMessage(MessageItem MessageItem) {MySqlCommand cmd = new MySqlCommand("UpdateMessage", новый MySqlConnection(GetConnectionString())); cmd.ТипКоманды = ТипКоманды.СохраненнаяПроцедура; cmd.Parameters.Add(new MySqlParameter("paramkey", MessageItem.Entry_ID)); cmd.Parameters.Add(new MySqlParameter("param1", MessageItem.Name)); cmd.Parameters.Add(new MySqlParameter("param2", MessageItem.Email)); cmd.Parameters.Add(new MySqlParameter("param3", MessageItem.Message)); cmd.Connection.Open(); int я = cmd.ExecuteNonQuery(); cmd.Соединение.Закрыть(); вернуть я; } [DataObjectMethod(DataObjectMethodType.Delete)] public static int DeleteMessage(MessageItem MessageItem) {MySqlCommand cmd = new MySqlCommand("DeleteMessage", новый MySqlConnection(GetConnectionString())); cmd.ТипКоманды = ТипКоманды.СохраненнаяПроцедура; cmd.Parameters.Add(new MySqlParameter("param1", MessageItem.Entry_ID)); cmd.Connection.Open(); int я = cmd.ExecuteNonQuery(); cmd.Соединение.Закрыть(); вернуть я; }
класс выше использует класс «MessageItem» для передачи параметров в элемент управления ObjectDataSource и обратно:
using System;public class MessageItem{ int _Entry_ID; строка _Сообщение; строка _Имя; строка _Электронная почта; public MessageItem() {} public int Entry_ID {get { return _Entry_ID; } Установить { _Entry_ID = значение; } } Общественная строка Сообщение {получить {вернуться _Message; } Установить { _Message = значение; } } Публичная строка Name {get {return _Name; } Установить { _Name = значение; } } Публичная строка Электронная почта {получить {вернуться _Email; } Установить { _Email = значение; } }}
это файл .aspx, содержащий элемент управления ObjectDataSource, а также GridView для редактирования данных и DetailsView для вставки записи: