ASP.NET 2.0 の ObjectDataSources で MySQL 5 を使用するための簡単な説明が見つからなかったため、この例を作成しました。
導入
ASP.NET 2.0 の ObjectDataSources で MySQL 5 を使用するための簡単な説明が見つからなかったので、この例を作成しました。
言っておきますが、私は MySQL に本当に感銘を受けています。 Windows XP マシンに簡単にインストールでき、約 1 時間で実行できるようになりました。私は長年 MS SQL を使用していましたが、Oracle と Firebird を使用しようとして非常にイライラしていました。問題は、私が MS SQL Server に甘やかされていることだとわかっていますが、忙しいので、使いやすいツールが好きなのです :)
MySQL と ASP.NET を使い始めている場合は、次の手順をお勧めします
。 MySQL Web サイトにアクセスし、「現在のリリース (推奨)」をダウンロードしてインストールします。
ダウンロードしてインストールします: MySQL Administrator (MySQL サーバーを管理するには、最初のダウンロードではサーバーのみがインストールされます)。
ダウンロードしてインストールします: Connector/Net 1.0 (これは、ASP.NET ページを MySQL サーバーと通信させるために必要です)。
以下もダウンロードできます: MySQL Query Browser – (MySQL データベースを操作し、クエリを実行するためのグラフィカル クライアント)。
このガイドを読んで従ってください:「ASP.NET で MySQL を使用するためのステップバイステップ ガイド」。
コードをインストールするには:
MySQL 5 が稼働している必要があります。
MySQL コネクタ/Net 1.0 をインストールします。
Test という名前の MySQL 5 データベースを作成します。
そのデータベースに 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;
次の 4 つの MySQL ストアド プロシージャを Test データベースに作成します。
PROCEDURE `test`.`DeleteMessage`(IN param1 INT)BEGINtest.message から削除WHERE 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 名前 = param1、電子メール = param2、メッセージ = param3WHERE (メッセージ. Entry_ID = paramkey);END
「MySQL」を解凍し、それを指すように IIS を構成します。 ASP.NET 2.0 を使用するように Web サーバーを構成してください。
MySQL データベースに接続するように
行を変更します
。IIS を介して、default.aspx ページを参照します。
これは、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.CommandType = CommandType.StoredProcedure; cmd.Connection.Open(); MySqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); リスト MessageItemlist = new List(); while (dr.Read()) { MessageItem MessageItem = new 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"]); MessageItemlist.Add(MessageItem); dr.Close(); 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(); 私を返します。 [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(); 私を返します。 }
て、
ObjectDataSource コントロールとの間でパラメーターを渡します。
文字列_Message; 文字列_Name; 文字列 _電子メール; public MessageItem() { } public int Entry_ID { get { return _Entry_ID; } set {_Entry_ID = 値; } } public string Message { get { return _Message; } set { _Message = 値; } } public string Name { get { return _Name; } set { _Name = 値; } } public string Email { get { return _Email; } set { _Email = 値; } }}
これは、ObjectDataSource コントロール、データ編集用の GridView、レコード挿入用のDetailsView を含む .aspx ファイルです: