habe dieses Beispiel erstellt, weil ich keine einfache Erklärung für die Verwendung von MySQL 5 mit ObjectDataSources in ASP.NET 2.0 finden konnte.
Einführung
Ich habe dieses Beispiel erstellt, weil ich keine einfache Erklärung für die Verwendung von MySQL 5 mit ObjectDataSources in ASP.NET 2.0 finden konnte.
Lassen Sie mich sagen, ich bin wirklich beeindruckt von MySQL. Ich konnte es problemlos auf meinem Windows XP-Rechner installieren und in etwa einer Stunde zum Laufen bringen. Ich bin ein langjähriger MS SQL-Benutzer und war sehr frustriert, als ich versuchte, Oracle und Firebird zu verwenden. Mir ist klar, dass das Problem darin besteht, dass ich von MS SQL Server verwöhnt bin, aber hey, ich bin beschäftigt und mag einfach zu verwendende Tools :)
Wenn Sie mit MySQL und ASP.NET beginnen, empfehle ich diese Schritte:
Los Gehen Sie zur MySQL-Website, laden Sie „Aktuelle Version (empfohlen)“ herunter und installieren Sie sie.
Herunterladen und installieren: MySQL Administrator (zur Verwaltung Ihres MySQL-Servers wird beim ersten Download nur der Server installiert).
Laden Sie Folgendes herunter und installieren Sie es: Connector/Net 1.0 (Sie benötigen dies, damit Ihre ASP.NET-Seiten mit Ihrem MySQL-Server kommunizieren können).
Sie können auch Folgendes herunterladen: MySQL Query Browser – (ein grafischer Client zum Arbeiten mit Ihren MySQL-Datenbanken und zum Ausführen von Abfragen).
Lesen und befolgen Sie diese Anleitung: Eine Schritt-für-Schritt-Anleitung zur Verwendung von MySQL mit ASP.NET.
So installieren Sie den Code:
Sie müssen MySQL 5 installiert und ausgeführt haben.
Installieren Sie MySQL Connector/Net 1.0.
Erstellen Sie eine MySQL 5-Datenbank mit dem Namen Test.
Erstellen Sie in dieser Datenbank eine Tabelle mit dem Namen Message:
CREATE TABLE test.message ( Entry_ID INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, Name VARCHAR(45), Email VARCHAR(45), Message VARCHAR(200), PRIMARY KEY (Entry_ID) ) AUTO_INCREMENT=32 CHARACTER SET latin1 COLLATE latin1_swedish_ci;
Erstellen Sie diese vier gespeicherten MySQL-Prozeduren in der Testdatenbank:
PROCEDURE `test`.`DeleteMessage`(IN param1 INT)BEGINDelete From test.messageWHERE Entry_ID = param1;END
PROCEDURE `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
PROCEDURE `test`.`ShowAll`()BEGINSELECT message.Entry_ID, message.Name, message.Email, message.MessageFROM test.message;END
PROCEDURE `test`.`UpdateMessage`(IN paramkey INT, IN param1 VARCHAR(50), IN param2 VARCHAR(50), IN param3 VARCHAR(200))BEGINUPDATE messageSET Name = param1, E-Mail = param2, Nachricht = param3WHERE (message. Entry_ID = paramkey);END
Entpacken Sie „MySQL“ und konfigurieren Sie IIS so, dass es darauf verweist. Stellen Sie sicher, dass Sie den Webserver für die Verwendung von ASP.NET 2.0 konfigurieren.
Öffnen Sie „web.config“ und ändern Sie die Zeile:,
um eine Verbindung zu Ihrer MySQL-Datenbank herzustellen.
Navigieren Sie über IIS zur Seite „default.aspx“.
Dies ist die Klasse, die Generics verwendet, um die Daten bereitzustellen, die vom ObjectDataSource-Steuerelement verbraucht werden:
using System;using System.Collections.Generic;using System.Data;using MySql.Data.MySqlClient;using System.Configuration;using System.ComponentModel ;[DataObject(true)]public static class MessagesDB{ private static string GetConnectionString() { return ConfigurationManager.ConnectionStrings ["MySQLConnectionString"].ConnectionString; } [DataObjectMethod(DataObjectMethodType.Select)] public static List GetMessages() { MySqlCommand cmd = new MySqlCommand("ShowAll", new MySqlConnection(GetConnectionString())); cmd.CommandType = CommandType.StoredProcedure; cmd.Connection.Open(); MySqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); List MessageItemlist = new List(); while (dr.Read()) { MessageItem MessageItem = new MessageItem(); MessageItem.Entry_ID = Convert.ToInt32(dr["Entry_ID"]); MessageItem.Message = Convert.ToString(dr["Message"]); MessageItem.Name = Convert.ToString(dr["Name"]); MessageItem.Email = Convert.ToString(dr["Email"]); MessageItemlist.Add(MessageItem); } dr.Close(); return MessageItemlist; } [DataObjectMethod(DataObjectMethodType.Insert)] public static void InsertMessage(MessageItem MessageItem) { MySqlCommand cmd = new MySqlCommand("InsertMessage", new MySqlConnection(GetConnectionString())); cmd.CommandType = CommandType.StoredProcedure; 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.Connection.Close(); } [DataObjectMethod(DataObjectMethodType.Update)] public static int UpdateMessage(MessageItem MessageItem) { MySqlCommand cmd = new MySqlCommand("UpdateMessage", new MySqlConnection(GetConnectionString())); cmd.CommandType = CommandType.StoredProcedure; 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 i = cmd.ExecuteNonQuery(); cmd.Connection.Close(); gib i zurück; } [DataObjectMethod(DataObjectMethodType.Delete)] public static int DeleteMessage(MessageItem MessageItem) { MySqlCommand cmd = new MySqlCommand("DeleteMessage", new MySqlConnection(GetConnectionString())); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(new MySqlParameter("param1", MessageItem.Entry_ID)); cmd.Connection.Open(); int i = cmd.ExecuteNonQuery(); cmd.Connection.Close(); gib i zurück; }
Die obige Klasse verwendet die Klasse „MessageItem“, um die Parameter an und vom ObjectDataSource-Steuerelement zu übergeben:
using System;public class MessageItem{ int _Entry_ID; string _Message; string _Name; string _Email; public MessageItem() { } public int Entry_ID { get { return _Entry_ID; } set { _Entry_ID = value; } } öffentliche Zeichenfolge Message { get { return _Message; } set { _Message = value; } } öffentlicher String Name { get { return _Name; } set { _Name = value; } } öffentliche Zeichenfolge Email { get { return _Email; } set { _Email = value; } }}
Dies ist die .aspx-Datei, die das ObjectDataSource-Steuerelement sowie eine GridView zum Bearbeiten von Daten und eine DetailsView zum Einfügen eines Datensatzes enthält: