百度网站,网页设计师工作室,便宜营销型网站建设优化建站,自己如何做网站优化当大家已经习惯了使用.net 去操作SQL Server#xff0c;有多少人曾经尝试过使用.net 去操作Mysql数据库#xff01;在.net 的光环下#xff0c;Mysql是显得如此微不足道#xff01;但是Mysql的开源又是如此具有诱惑。1. ADO.NET 方式连接Mysql数据库经过在网上查找资料有多少人曾经尝试过使用.net 去操作Mysql数据库在.net 的光环下Mysql是显得如此微不足道但是Mysql的开源又是如此具有诱惑。1. ADO.NET 方式连接Mysql数据库经过在网上查找资料在.net 上连接mysql 数据库有三种方式方法一使用CoreLab推出的MYSQL访问组件引用命名空间CoreLab.MySql方法二通过ODBC访问MYSQL数据库, 前要先下载两个组件odbc.net和MYSQL的ODBC驱动,可以使用ODBC访问Mysql数据库方法三使用MYSQL推出的MySQL Connector/Net is an ADO.NET driver for MySQL该组件为MYSQL为ADO.NET访问MYSQL数据库设计的.NET访问组件使用MySql.Data.MySqlClient以上三种方式的说明可以具体参照文章http://blog.csdn.net/lxh0959/archive/2008/08/05/2773424.aspx 此篇文章对此做了详细说明这里要说明的是第三种方式这种访问方式完全遵循我们Ado.net 访问SQL Server的模式所以使用起来也更加得心应手。ADO.NET driver for MySQL 下载地址官方网站 http://www.mysql.com/downloads/2. 基础数据库操作使用ADO.net 操作数据库固定不变的模式五个核心对象Connection: Connection 对象主要是开启程序和数据库之间的连结。没有利用连结对象将数据库打开是无法从数据库中取得数据的。CommandCommand 对象主要可以用来对数据库发出一些指令例如可以对数据库下达查询、新增、修改、删除数据等指令以及呼叫存在数据库中的预存程序等。DataAdapter: DataSetCommand 对象主要是在数据源以及DataSet 之间执行数据传输的工作它可以透过Command 对象下达命令后并将取得的数据放入DataSet 对象中。DataSetDataSet 这个对象可以视为一个暂存区(Cache)可以把从数据库中所查询到的数据保留起来甚至可以将整个数据库显示出来。DataSet 的能力不只是可以储存多个Table 而已还可以透过DataSetCommand 对象取得一些例如主键等的数据表结构并可以记录数据表间的关联。DataSet 对象可以说是ADO.NET 中重量级的对象这个对象架构在DataSetCommand 对象上本身不具备和数据源沟通的能力。DataReader: 当我们只需要循序的读取数据而不需要其它操作时可以使用DataReader 对象。DataReader对象只是一次一笔向下循序的读取数据源中的数据而且这些数据是只读的并不允许作其它的操作。因为DataReader 在读取数据的时候限制了每次只读取一笔而且只能只读所以使用起来不但节省资源而且效率很好.using System;using System.Collections.Generic;using System.Linq;using System.Text;using MySql.Data.MySqlClient;namespace CimDataImport{public class TestCharacter{public const string mysqlConnection User Idroot;Hostlocalhost;Databasecim;passwordroot;/// /// 添加数据//////public int Add(UserBase entity){string sql INSERT INTO cimuser (userid,userNickName) VALUE (userid,userNickName);using (MySqlConnection mycn new MySqlConnection(mysqlConnection)){mycn.Open();MySqlCommand command new MySqlCommand(sql, mycn);command.Parameters.AddWithValue(userid, entity.UserId);command.Parameters.AddWithValue(userNickName,entity.UserNickName);return command.ExecuteNonQuery();}}/// /// 修改数据/////////public int Update(UserBase entity){string sql UPDATE cimuser SET userNickNameuserNickName WHERE useriduserid;using (MySqlConnection mycn new MySqlConnection(mysqlConnection)){mycn.Open();MySqlCommand command new MySqlCommand(sql, mycn);command.Parameters.AddWithValue(userid, entity.UserId);command.Parameters.AddWithValue(userNickName, entity.UserNickName);return command.ExecuteNonQuery();}}/// /// 删除数据/////////public int Delete(int primaryKey){string sql DELETE FROM cimuser WHERE useriduserid;using (MySqlConnection mycn new MySqlConnection(mysqlConnection)){mycn.Open();MySqlCommand command new MySqlCommand(sql, mycn);command.Parameters.AddWithValue(userid, primaryKey);return command.ExecuteNonQuery();}}/// /// 根据主键查询/////////public UserBase Get(int primaryKey){string sql SELECT userid,userNickName FROM cimuser where useriduserid;using (MySqlConnection mycn new MySqlConnection(mysqlConnection)){mycn.Open();MySqlCommand command new MySqlCommand(sql, mycn);command.Parameters.AddWithValue(userid, primaryKey);MySqlDataReader reader command.ExecuteReader();UserBase userBase null;if (reader.Read()){userBase new UserBase();userBase.UserId Convert.ToInt32(reader[userid]);userBase.UserNickName reader[userNickName] DBNull.Value ? null : reader[userNickName].ToString();}return userBase;}}/// /// 查询集合//////public IListGetList(){string sql SELECT userid,userNickName FROM cimuser limit 1,10;using (MySqlConnection mycn new MySqlConnection(mysqlConnection)){mycn.Open();MySqlCommand command new MySqlCommand(sql, mycn);MySqlDataReader reader command.ExecuteReader();IListlist new List();UserBase userBase null;while (reader.Read()){userBase new UserBase();userBase.UserId Convert.ToInt32(reader[userid]);userBase.UserNickName reader[userNickName] DBNull.Value ? null : reader[userNickName].ToString();list.Add(userBase);}return list;}}}}3. ALinq 让我变得如此简单在Linq 没有现世之前Ado.net 的数据库操作让我们感觉到编程的痛苦每天重复着相同的数据库操作代码后来千奇百怪的代码生成器让我们从中解脱出来虽然有些代码生成器的确非常不错但是心中始终觉得那些代码少了一些什么Linq TO SQL 推出之后我们感觉到了.net 语法的甜是甜到心里的那种甜感觉自己从代码中彻底释放出来可是Linq To SQL 只支持微软的 SQL Server 数据库。 Alinq 是如此完美的解决了多类型数据库操作的问题在操作SQL Server 数据上毫不逊色Linq to SQL在MysqlOracle,Db2 等数据库操作上更甚一筹第一 新建工程这里使用控制台程序 第二添加新建项第三 新建数据库连接第四添加Mysql数据库连接第五选择Mysql 数据源第六更改数据源第七输入Mysql服务名以及账号和密码第八测试连接第九连接成功上述操作是必须在安装ADO.NET driver for MySQL 组件的情况下才能正常操作否则第六步选择更改数据源的时候看不到MySql database 选项。Linq to sql 对于大家来说已经很熟悉了ALinq 的操作前面的文章也已经详细讲解过了。这里操作不做详细说明了4. 中文你让我如何说你Mysql 数据库开源更重要的是它能够运行在Linux系统中在工作中将Sql server 数据库中的数据导入到Mysql 的时候意想不到的事情发生了中文在Mysql 中都变成了乱码。而且Mysql 是安装在Linux 系统上的。Linux 中Mysql解决乱码问题方案以及操作步骤1. 查找Mysql 下的.cnf 配置文件在windows系统中安装mysql程序其中保存保存数据的配置文件名为 my.ini此文件存在于mysql安装目录下,使用记事本打开此文件修改内容如下将 default-character-setutf8 (有两处)更改为 default-character-setGBK 并且添加节点character_setgbk在Linux中首先查找mysql 的配置文件命令如下find -name *.cnf –print 得到如下结果2. 将Mysql 中的一个cnf文件复制到etc文件目录下并且保存为my.cnf在etc 目录下查找my.cnf 文件如果此文件不存在则需要从1中查找的文件中my-large.cnf,My-small.cnf,my-medium.cnf 三个文件中复制一个到etc目录下面并且保存my.cnf 文件。使用命令cp /usr/share/mysql/my-large.cnf /etc/mv etc/my-large.cnf etc/my.cnf 文件复制到特定目录并且重新命名。3. 修改my.cnf 配置文件cd etc/ 进入etc目录下vi my.cnf 使用vi命令打开my.cnf 文件如果文件中存在此节点则将编码方式修改为gbk4. 重新启动服务/etc/init.d/mysql restart 重新启动mysql 服务5. 再次导入数据成功本条技术文章来源于互联网如果无意侵犯您的权益请点击此处反馈版权投诉本文系统来源php中文网