C#连接MySQL的方法及出现的GUID问题的解决方案

本人环境:

win7 64位

MySQL(版本:mysql-installer-community-5.7.4.0-m14.1411728256.msi)

VS2012

用C#连接MySQL,我个人觉得是件很蹩脚的事,但是在实际中确实很遇到这样的情况。为了完成一个简单的测试,我进行了这样的尝试。

1.安装MySQL

简单的选择加下一步,傻瓜式的操作,看似简单,偏偏在最后一步配置的时候出现问题。提示让我Try again,卸载再安装还是一样。最后我在root密码设置的时候填写简单的1234,尽管还是提示同样的错误,我取消安装后,打开MySQL Workbench CE ,竟然能够登陆,出现了test数据库。我感到很惊讶,原因也不知,确实很神奇。如有大神知道为何,还请相告。

2.C#连接Mysql数据库

百度一搜连接数据库的方法确实还不少,我选择了一种比较简单方便的方式,使用官方的MySQL Connector/Net。

1)首先下载mysql-connector-net文件,文件下载地址为http://dev.mysql.com/downloads/connector/net/6.6.html#downloads(希望还找得到) ,版本自选,平台选择.Net&Mono,下载ZIP免安装版。

2)解压缩刚才下载的zip文件,里面有几个版本,在这里我选的是V4。

3)在C#引用中添加V4文件夹下的几个dll链接库。

4)代码连接

 1 string constr = "server=127.0.0.1;user=root;password=1234;database=test;port=3306";
 2 MySqlConnection mycon = new MySqlConnection(constr);
 3 mycon.Open();
 4 string cmdstr = "SELECT * FROM test.art;";
 5 MySqlCommand mycmd = new MySqlCommand(cmdstr, mycon);
 6 MySqlDataReader reader = mycmd.ExecuteReader();
 7 while (reader.Read())
 8 {
 9    .......
10 }
11 mycon.Close();

连接MySQL的代码和连接MSSQL数据库类似。连接的最后你还要释放mycon的资源。当然你也可以使用using()的方法免除对mycon善后处理的麻烦。

注意:不能用ExecuteNonQuery()方法返回select查询的条数,因为其返回的结果是-1。

3.在写完代码运行时突然提示GUID 应包含带 4 个短划线的 32 位数(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx),瞬间感到很无助。这个世界怎么了?

我的第一感觉是连接MySQl数据库时出现了问题。但网上有人说是VS自身的问题,需要删掉C盘下的某某三个文件,我删除后可惜还是不行。最后查到是原来是MySQL中char(36)被误认为是GUID,将char(36)改成char(40)后(非char(36)即可),错误不在提示。真的是很神奇。

看来是MySQL官方的连接器将定义为char(36)的字段当成了GUID 类型。

时间: 2024-11-06 03:38:49

C#连接MySQL的方法及出现的GUID问题的解决方案的相关文章

QTP连接MYSQL数据库方法

1.首先安装mysql数据驱动,qtp在windows系统下操作连接mysql,所以下载mysql-connector-odbc-   5.1.8-win32.msi 下载地址:http://mysql.mirrors.pair.com/Downloads/Connector-ODBC/5.1/mysqlconnector-odbc-5.1.8-win32.msi 2.安装mysql驱动 ,默认安装即可. 3. 添加默认数据源 控制面板->管理工具->数据源ODBC->系统DNS->

R语言-连接MySQL数据库方法

版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] R语言连接数据库常用的方法有2种: 1.使用R数据库接口 连接MySQL,使用RMySQL包,使用前RMySQL包要先安装. library(RMySQL) 连接方式有2种: (1)使用dbConnectconn <- dbConnect(MySQL(), dbname = "rmysql", username="rmysql", password="rmysql",

Navicate连接MySQL出现2059-Authentication plugin &#39;caching_sha2_password&#39; cannot be loaded:的解决方案

使用Navicate Premium12.0 连接MySql8.0出现2059-Authentication plugin 'caching_sha2_password' cannot be loaded:的错误,解决方法如下  1.打开MySQL 8.0 Command Line Client工具登陆到MySQL 2. 修改账户密码加密规则并更新用户密码 ALTER USER '登录名''@'localhost' IDENTIFIED BY '密码' PASSWORD EXPIRE NEVER

远程连接mysql 授权方法详解

今在服务器上有mysql数据库,远程访问,不想公布root账户,所以,创建了demo账户,允许demo账户在任何地方都能访问mysql数据库中shandong库,接下来为您详细介绍 今在服务器上 有mysql 数据库,远程访问,不想公布root账户,所以,创建了demo账户,允许demo账户在任何地方都能访问mysql数据库中shandong库. 方案一: 在安装mysql的机器上运行: 1: 创建user用户 复制代码 代码如下: CREATE USER demo IDENTIFIED BY

R连接mysql数据库方法详解

Warning messages: 1: In odbcDriverConnect("DSN=Rdata;UID=root") : [RODBC] ERROR: state IM002, code 0, message [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 当R语言从数据库取出数据时,出现以上错误,这是由于未配置ODBC数据源引起的错误,以下将介绍该问题的解决方案,同时介绍R连接mysql数据库的方法一.配置ODBC数据源1.下载m

cmd连接mysql的方法

连接:mysql -h主机地址 -u用户名 -p用户密码 (注:u与root可以不用加空格,其它也一样)断开:exit (回车)创建授权:grant select on 数据库.* to 用户名@登录主机 identified by \"密码\"修改密码:mysqladmin -u用户名 -p旧密码 password 新密码删除授权: revoke select,insert,update,delete om *.* [email protected];显示数据库:show datab

cmd连接mysql的方法详解(转载)

连接:mysql -h主机地址 -u用户名 -p用户密码 (注:u与root可以不用加空格,其它也一样)断开:exit (回车) 创建授权:grant select on 数据库.* to 用户名@登录主机 identified by \"密码\"修改密码:mysqladmin -u用户名 -p旧密码 password 新密码删除授权: revoke select,insert,update,delete om *.* [email protected]; 显示数据库:show dat

php无法连接mysql问题解决方法总结

http://www.163ns.com/zixun/post/5295.html 本文章总结了在php开发中可能会常常碰到的一些php连接不了mysql数据库的一些问题总结与解决方法分享,有需要的朋友可参考一下. 问题一 今天给本本装上mysql和php,一切安装都很正常([email protected]).但用phpmyadmin连接测试时却出现“#2002无法连接”的错误,用其它程序也是同样问题.检查了下,php的mysql扩展正确安装,mysql服务正常启动--那就奇了怪了.又用nav

shell批量远程连接mysql的方法

一.配置mysql服务器ip列表如下,可自定义: S1     1.1.1.1     3306 user passwd11   dbname_s1S2      2.2.2.2     3306 user passwd22  dbname_s2S3      3.3.3.3     3306 user passwd33  dbname_s3 二.#linux批量连接多服务器的shell脚本如下: #!/bin/bash if [[ "$#" -lt "2" ]]