在.NET中要访问MySql,我采用的是MySql官方提供的.NET connector,此驱动只需要下载即可使用:http://dev.mysql.com/downloads/connector/net/1.0.html

在使用中积累了几点经验:
1)使用Parameter参数形式提交Command时必须要把"@"号换成"?"号,这一点让我困惑了一天,只是不明白MySQL为何要搞特殊呢,象MS、ODP.NET for Oracle、OleDb等方式,都是用"@"号的。
例子如下:
 
在.NET访问MySql数据库时的几点经验!string connstr=Setting.Instance().GetConnectionString("MySql");
在.NET访问MySql数据库时的几点经验!MySqlConnection conn 
=new MySqlConnection(connstr);
在.NET访问MySql数据库时的几点经验!conn.Open();
在.NET访问MySql数据库时的几点经验!
string query = "insert into myfirst(Id,Name) values(?Id,?Name)";
在.NET访问MySql数据库时的几点经验!MySqlCommand cmd 
= new MySqlCommand(query, conn);
在.NET访问MySql数据库时的几点经验!MySqlParameter para1
=new MySqlParameter("?Id",DbType.Int32); //这里要注意必须要用?号
在.NET访问MySql数据库时的几点经验!
MySqlParameter para2=new MySqlParameter("?Name",DbType.String);//这里要注意必须要用?号
在.NET访问MySql数据库时的几点经验!
para1.Value=5;
在.NET访问MySql数据库时的几点经验!para2.Value
="ddd";
在.NET访问MySql数据库时的几点经验!cmd.Parameters.Add(para1);
在.NET访问MySql数据库时的几点经验!cmd.Parameters.Add(para2);
在.NET访问MySql数据库时的几点经验!cmd.ExecuteNonQuery();


2)在MySQL中也有保留字,为了提供兼容,我必须要找到定界符,好不容易在MySql的论坛里找到了,使用的定界符是`,这个符号不是单引号,而是键盘上数字1前面的那个“点”,真是害死我啊。

3)MySQL中的TOP功能倒是非常简单,只需要语句后面使用“limit n”就行了,这比ORACLE的那Rownum方便多了。

使用MySql 的.NET Connector访问MySQL总体来说还算不错的,大部分是兼容.NET中的IConnection、ICommand的。

PS:有个不明白就是在.NET Connector中提供一个MySqlDateTime类,不知道这个类具体有什么用,怎么用,在国内没有找到相关的资料。MySqlDateTime跟System.Date还不兼容,在MySQL论坛上相关帖子N多。

如果采用String类型的Parameter传递给MySql的DateTime字段会报:Unable to Convert MySql Date/Time value to System.DateTime 的错误。

所有相关的MySQL的问题可以去:http://forum.mysql.com/ 论坛看看:)

相关文章:

  • 2021-11-30
  • 2021-12-27
  • 2022-12-23
  • 2021-07-30
  • 2021-10-12
  • 2021-06-20
  • 2021-09-19
  • 2021-12-31
猜你喜欢
  • 2021-08-06
  • 2022-12-23
  • 2021-10-01
  • 2021-10-28
相关资源
相似解决方案