C# 操作MySQL数据库的简单例子
示例演示了用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()";结果一样,两者的区别没有研究。
3.分页查询
使用Limit子句来处理分页查询,这样相对于Access的分页查询,代码大量简化,效率也会提高。
代码这里下载
MySqlDBUtilDemo.rar
(198.41 KB , 下载:2170次)
本例程是一个c#的winform程序,但是数据访问类可以在Web环境下使用。
运行前先利用bin\Release下的sql语句文件建表并修改MySqlDBUtil中的连接字符串。
本例程演示了:
1.MySQL数据库的插入,更新,修改,查询;
2.带参数的sql语句的使用,而不是拼SQL;
3.使用Limit子句的分页查询;
4.用事务同时执行多个SQL语句;
5.在插入
相关文档:
连接Access
首先看一个例子代码片断:
程序代码:
--------------------------------------------------------------------------------
using System.Data;
using System.Data.OleDb;
......
string strConnection="Provider=Microsoft.Jet.OleDb.4.0;";
strConnection+=@"Data Source=C:\BegASPNET\Northwind.mdb" ......
TO_DAYS(date) //给定一个日期,返回从0年开始的天数。
from_DAYS(N) //给定一个天数,返回一个日期。
如:
select TO_DAYS('1997-10-7') //返回729669
select from_DAYS(729669) //返回1997-10-7
UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date)
若无参数调用,则返 ......
MySQL支持大量的列类型,它可以被分为3类:数字类型、日期和时间类型以及字符串(字符)类型。本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述。概述有意简化,更详细的说明应该考虑到有关特定列类型的附加信息,例如你能为其指定值的允许格式。
由MySQL支持的列 ......
The security settings could not be applied to the database because the connection has failed with the following error.
Error Nr. 2003
Can't connect to MySQL server on 'localhost' (10061)
If a personal firewall is running on your machine, please make sure you have opened the TCP port 3306 for conn ......