本示例演示了用C#操作MySQL的方式,降求了三个可沉用的类MySqlDBUtil,MySqlPageUtil,Page。
本示例由 C#操作Access数据库的简略例子(http://www.albertsong.com/read-56.html)改动而来,十月妈咪。
1.首先下载MySQL数据库的.NET驱动
http://dev.mysql.com/get/Downloads/Connector-Net/mysql-connector-net-5.0.8.1-noinstall.zip/from/pick#mirrors
将bin目录里的MySql.Data.dll白件复造到农程目录,并且将dll的援用参加到项纲中,这样便可以通功相干的类来操作MySQL数据库了。
using MySql.Data.MySqlClient;
using System.Data;
衔接字符串:String connectionString = "server=127.0.0.1;user id=root; password=as; database=albertsong; pooling=false;charset=utf8";
衔接字符串中各个项目标意义是很明白的,须要注意的是charset应当设放成和数据库表的charset分歧,否则能够呈现中白治码。
然后将整个项目中的OleDb用MySql替代,这样基础上便可以了。不同的是带参数的sql语句,
Access中是
string sql="insert into product(name,quantity,price,sale_date,checked_flag)values(?,?,?,?,?)";
parameters[0]=new MySqlParameter("@name",MySqlDbType.VarChar,100);
MySql中当改为
string sql="insert into product(name,quantity,price,sale_date,checked_flag)values(?name,?quantity,?price,?sale_date,?checked_flag)";
parameters[0]=new MySqlParameter("?name",MySqlDbType.VarChar,100);
2.获得MySQL自增本识字段在拔出数据后的id值
cmd.CommandText = @"select @@identity";
int value = Int32.Parse(cmd.ExecuteScalar().ToString());
return value;
用cmd.CommandText = @"select LAST_INSERT_ID()";成果一样,两者的区别出有研讨,BB霜。
3.分页查询
使用Limit子句来处置分页查询,那样相关于Access的分页查询,代码大批简化,效力也会进步。
代码那里下载MySqlDBUtilDemo.rar (198.41 KB , 下载:2755次)
原例程是一个c#的winform程序,但是数据拜访类能够正在Web环境下使用。
运转前先应用bin\Release下的sql语句白件修表并改动MySqlDBUtil中的衔接字符串。
原例程演示了:
1.MySQL数据库的拔出,更新,改动,查询;
2.带参数的sql语句的使用,而没有是拼SQL;
3.使用Limit子句的分页查询;
4.用事务同时施行少个SQL语句;
5.正在拔出数据的同时前往最新的ID值;
6.整型,真型,字符串,日期型,布我型五类数据类型的操做;
7.使用正则表达式来考证整数和真数;
8.listview用来显示数据的一些基础用法。
原示例没有包含:
1.完美的分页封装,只降求了分页的简略包装。
2.嵌套的事务处置,降求了同时施行少个sql语句的事务处置,但不支撑嵌套事务。
3.listview的使用,只是应用winform控件来演示数据拜访,因而没有能做为winform编程的良佳示例,例如加加数据时界里并出有很佳天更新。
后忘:
因为API交心分歧,将操作Access数据库的类改为操作MySQL数据库的类很轻易,应用这两个示例,能够进修基础的数据库操做,也能够用来做一些简略的利用程序了。实践的项纲中有幼稚的启流项目可用,如iBATIS.NET和NHibernate,这些项目皆修建正在这些根本的API之上,先教习人写的那两个小例子也有帮于进修懂得这些项纲。