using MySql.Data.MySqlclient;        // 引进MYSQL 库

 // C# 连接 MYSQL 数据库更好的方法

 void func_02()
{
string str_conn_info = "";
str_conn_info += " Host = " + db_ip + ";";
str_conn_info += " Database = " + db_ip + ";";
str_conn_info += " User = " + db_ip + ";";
str_conn_info += " password = " + db_ip + ";";
str_conn_info += " port = " + db_ip + ";";
str_conn_info += " Charset = utf8"; MySqlCommand sql_cmd = new MySqlCommand();
sql_cmd.Connection = new MySqlConnection(); sql_cmd.Connection.ConnectionString = str_conn_info; if (!connect_to_mysql(sql_cmd.Connection))
{
// 连接失败
return;
} try
{
// 添加SQL 语句,并运行
sql_cmd.CommandText = "SELECT mail_id, mail_src_id, first_read_time, get_items_time, del_mail_time"
+ " FROM log_mail WHERE player_id = 1"; // 运行的结果集放到MySqlDataReader 中
MySqlDataReader data_reader = sql_cmd.ExecuteReader(); // 从结果集中取数据
try
{
while (data_reader.Read())
{
PlayerMailRecordForm.struMailRecord mail_record = new PlayerMailRecordForm.struMailRecord();
mail_record.mail_id = data_reader.GetUInt32("mail_id");
mail_record.mail_src_id = data_reader.GetUInt32("mail_src_id");
mail_record.str_first_read = data_reader.GetString("first_read_time");
if (data_reader["get_items_time"] != DBNull.Value) // 如果该字段 IS NOT NULL
mail_record.str_get_items = data_reader.GetString("get_items_time");
if (data_reader["del_mail_time"] != DBNull.Value)
mail_record.str_del_mail = data_reader.GetString("del_mail_time");
} // 关闭结果集,如果不关闭,下次运行SQL 语句时会出问题。
data_reader.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message); // 关闭结果集,如果不关闭,下次运行SQL 语句时会出问题。
data_reader.Close();
return;
}
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
disconnect_from_mysql(sql_cmd.Connection);
return;
} // 关闭连接
disconnect_from_mysql(sql_cmd.Connection); // 这里没有找到对于MySqlCommand 释放的方法,感觉应该是没有,不过也没关系了,这里整个对象都回收了,应该是OK的。
} public bool connect_to_mysql(MySqlConnection conn_clt)
{
switch (conn_clt.State)
{
case ConnectionState.Open:
case ConnectionState.Connecting:
case ConnectionState.Executing:
case ConnectionState.Fetching:
case ConnectionState.Broken:
break;
case ConnectionState.Closed:
default:
try
{
conn_clt.Open();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
return false;
}
break;
} return true;
} public void disconnect_from_mysql(MySqlConnection conn_clt)
{
switch (conn_clt.State)
{
case ConnectionState.Open:
case ConnectionState.Connecting:
case ConnectionState.Executing:
case ConnectionState.Fetching:
case ConnectionState.Broken:
conn_clt.Close();
break;
case ConnectionState.Closed:
default:
break;
}
}

C# 连接操作MYSQL 数据库_02的更多相关文章

  1. Python MySQLdb模块连接操作mysql数据库实例_python

    mysql是一个优秀的开源数据库,它现在的应用非常的广泛,因此很有必要简单的介绍一下用python操作mysql数据库的方法.python操作数据库需要安装一个第三方的模块,在http://mysql ...

  2. 树莓派开发笔记(十七):树莓派4B+上Qt多用户连接操作Mysql数据库同步(单条数据悲观锁)

    前言   安装了mysq数据库,最终时为了实现在一个树莓派上实现多用户多进程操作的同步问题,避免数据并发出现一些错误,本篇安装了远程服务并且讲述了使用Qt进行悲观锁for update操作,命令行进行 ...

  3. C#连接操作MySQL数据库详细步骤 帮助类等(二次改进版)

    最近准备写一个仓库管理的项目 客户要求使用C#编写MySQL存储数据 为了方便,整理了数据库操作的工具类 首先在项目App.config 文件下添加节点 <connectionStrings&g ...

  4. python 连接操作mysql数据库

    开发数据库程序流程: 1.创建connection对象,获取cursor 2.使用cursor执行SQL 3.使用cursor获取数据.判断执行状态 4.提交事务 或者 回滚事务 import: 数据 ...

  5. ASP.NET Core使用EF Core操作MySql数据库

    ASP.NET Core操作MySql数据库, 这样整套环境都可以布署在Linux上 使用微软的 Microsoft.EntityFrameworkCore(2.1.4) 和MySql出的 MySql ...

  6. robot_framewok自动化测试--(9)连接并操作 MySql 数据库

    连接并操作 MySql 数据库 1.mysql数据库 1.1安装mysql数据库 请参考我的另一篇文章:MYSQL5.7下载安装图文教程 1.2.准备测试数据 请参考我的另一篇文章:Mysql基础教程 ...

  7. PHP操作MySQL数据库5个步骤

    PHP操作MySQL数据库一般可分为5个步骤:1.连接MySQL数据库服务器:2.选择数据库:3.执行SQL语句:4.关闭结果集:5断开与MySQL数据库服务器连接. 1.用mysql_connect ...

  8. python操作mysql数据库的相关操作实例

    python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...

  9. 转 用C API 操作MySQL数据库

    用C API 操作MySQL数据库 参考MYSQL的帮助文档整理 这里归纳了C API可使用的函数,并在下一节详细介绍了它们.请参见25.2.3节,“C API函数描述”. 函数 描述 mysql_a ...

随机推荐

  1. 用CorelDRAW勾画对象轮廓图的方法

    轮廓图效果是利用渐变的步数来使图形产生渐变效果,与调和效果相似.两者的区别在于图形数不同,调和效果作用于两个或两个以上的图形,轮廓图只作用于一个图形.本教程将详解CorelDRAW中如何勾画对象轮廓图 ...

  2. SpringMVC的各种参数绑定方式

    1. 基本数据类型(以int为例,其他类似):2. 包装类型(以Integer为例,其他类似):3. 自定义对象类型:4. 自定义复合对象类型:5. List绑定:6. Set绑定:7. Map绑定: ...

  3. Android Studio--学习系列(1)

    <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="ht ...

  4. 关于Schema设计规范及SQL使用建议

    1.所有的InnoDB表都设计一个无业务用途的自增列做主键,对于绝大多数场景都是如此,真正纯只读用InnoDB表的并不多,真如此的话还不如用TokuDB来得划算: 2.字段长度满足需求前提下,尽可能选 ...

  5. 【linux】 linux 查看系统信息

    1.输入"uname -a ",可显示电脑以及操作系统的相关信息. 2.输入"cat /proc/version",说明正在运行的内核版本. 3.输入" ...

  6. Spring实战5:基于Spring构建Web应用

    主要内容 将web请求映射到Spring控制器 绑定form参数 验证表单提交的参数 对于很多Java程序员来说,他们的主要工作就是开发Web应用,如果你也在做这样的工作,那么你一定会了解到构建这类系 ...

  7. Python 共享和上传函数模块到PyPI

    1. register account by brower on https://pypi.python.org/pypi/ 2. register your moudle "nester& ...

  8. git设置代理

    git config --global https.proxy http://127.0.0.1:1080 git config --global https.proxy https://127.0. ...

  9. leptus和cowboy之间某些库的转换

    在github上问作者,如何使用cookie,作者回复是,leptus是基于restful的框架,对于cookie和session的支持,建议转换为cowboy用,以下是转换方式 leptus_req ...

  10. DB设计原则(一)字段名定义避免二义性。

    字段名定义避免二义性.如:主数据中有库存信息表 KCDDID,KCDDMC.若要在业务表中存储库存地点ID的话,不要定义为KCDD,要定义为KCDDID.这样标明存储的就是ID,而不是名称.同样,单位 ...