网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP.NET技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.如何在.NET中访问MySQL数据库.
.大数量查询分页显示 微软的解决办.
.将web窗体页文件(test.aspx)转换.
.页面中包括DataGrid时,利用webc.
.Web导出Word需要添加头文件.
.如何在GridView中一次性批量更新.
.Asp.Net中使用水晶报表.
.收藏一段小的.net下的验证码片段.
.ASP.NET2.0实现无刷新客户端回调.
.将Asp.net从VS2003以及VS2002工程.
.Asp.Net中NHiernate的Session的管.
.分析器错误信息: 未能加载文件或.
.利用OpenSmtp.Net发送需要smtp验.
.在ASP.NET中跨页面实现多选.
.httpRuntime 一点经验.
.ASP.NET与MySQL数据库简明图示入.
.asp.net StreamReader 创建文件.
.正则表达式中的组集合的使用.
.SQL Server精简版支不支持ASP.NE.
.DATAGRID分页,增加首页、最后一.

老外的.net与mysql存储过程编程

发表日期:2007-6-7


created this example because I could not find a simple explanation for using MySQL 5 with ObjectDataSources in ASP.NET 2.0.

Introduction
i created this example because I could not find a simple explanation for using MySQL 5 with ObjectDataSources in ASP.NET 2.0.

let me say, I am really impressed with MySQL. I was able to install it easily on my Windows XP machine and get it running in about an hour. I am a long time MS SQL user, and was very frustrated with trying to use Oracle and Firebird. I realize, the problem is that I am spoiled from MS SQL Server, but hey I'm busy and I like easy to use tools :)

if you're getting started with MySQL and ASP.NET, then I recommend these steps:

Go to the MySQL website, download and install “Current Release (recommended)”.
Download and install: MySQL Administrator (to administer your MySQL server, the first download just installs only the server).
Download and install: Connector/Net 1.0 (you need this to get your ASP.NET pages to talk to your MySQL server).
You can also download: MySQL Query Browser – (a graphical client to work with your MySQL databases and run queries).
Read and follow this guide: A Step-by-Step Guide to Using MySQL with ASP.NET.
To install the code:
You must have MySQL 5 up and running.
Install MySQL Connector/Net 1.0.
Create a MySQL 5 database named Test.
Create a table in that database called 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;
Create these four MySQL stored procedures in the Test database:
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, Email = param2, Message = param3WHERE     (message.Entry_ID = paramkey);END
Unzip "MySQL" and configure IIS to point to it. Make sure you configure the web server to use ASP.NET 2.0.
Open "web.config" and change the line:

to connect to your MySQL database.

Browse to the default.aspx page through IIS.
this is the class that uses Generics to supply the data that is consumed by the ObjectDataSource control:

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();        return i;    }    [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();        return i;    }
the class above uses the class "MessageItem" to pass the parameters to and from the ObjectDataSource control:

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;        }    }    public string Message    {        get        {            return _Message;        }        set        {            _Message = value;        }    }    public string Name    {        get        {            return _Name;        }        set        {            _Name = value;        }    }    public string Email    {        get        {            return _Email;        }        set        {            _Email = value;        }    }}
this is the .aspx file that contains the ObjectDataSource control as well as a GridView for editing data and a DetailsView for inserting a record:

Download source - 65.3 Kb

上一篇:在 IIS 中配置 SQL XML 支持 人气:4091
下一篇:在asp.net中实现会话状态基础 人气:4128
浏览全部存储过程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐