.net访问Mysql一些细节问题

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

   
在使用中积累了几点经验:
    1)
使用Parameter参数形式提交Command时必须要把"@"号换成"?"号,这一点让我困惑了一天,只是不明白MySQL为何要搞特殊呢,象MSODP.NET for OracleOleDb等方式,都是用"@"号的。

例子如下:

  string connstr=Setting.Instance().GetConnectionString("MySql");
MySqlConnection conn =new MySqlConnection(connstr);
conn.Open();
string query = "insert into myfirst(Id,Name) values(?Id,?Name)";
MySqlCommand cmd = new MySqlCommand(query, conn);
MySqlParameter para1=new MySqlParameter("?Id",DbType.Int32); //
这里要注意必须要用?

MySqlParameter para2=new MySqlParameter("?Name",DbType.String);//
这里要注意必须要用?

para1.Value=5;
para2.Value="ddd";
cmd.Parameters.Add(para1);
cmd.Parameters.Add(para2);
cmd.ExecuteNonQuery();

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


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


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


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

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

 

Mysql语句加 字段有【】 就会报错误!!!!!!!

 

 

 

 

 

也是刚开始学mysql,下面是我从网上找到的,我刚才试过了,可以, 我的是mysql5.0

mysql
服务器支持 # 到该行结束、-- 到该行结束 以及 /* 行中间或多个行 */ 的注释方格:
mysql> SELECT 1+1; #
这个注释直到该行结束

mysql> SELECT 1+1; --
这个注释直到该行结束
mysql> SELECT 1 /*
这是一个在行中间的注释 */ + 1;
mysql> SELECT 1+
/*
这是一个

多行注释的形式
*/
1;
注意 -- (双长划) 注释风格要求在两个长划后至少有一个空格!
尽管服务器理解刚才描述的注释句法,但 MySQL 客户端的语法分析在 /* ... */ 注释方式上还有所限止:

单引号和双引号被用来标志一个被引用字符串的开始,即使是在一个注释中。如果注释中的引号没有另一个引号与之配对,那和语法分析程序就不会认为注释结束。如果你以交互式运行 mysql,你会产生困惑,因为提示符从 mysql> 变为 '> ">

你可能感兴趣的:(VB.net)