C# 连接操作MYSQL 数据库_02
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的更多相关文章
- Python MySQLdb模块连接操作mysql数据库实例_python
mysql是一个优秀的开源数据库,它现在的应用非常的广泛,因此很有必要简单的介绍一下用python操作mysql数据库的方法.python操作数据库需要安装一个第三方的模块,在http://mysql ...
- 树莓派开发笔记(十七):树莓派4B+上Qt多用户连接操作Mysql数据库同步(单条数据悲观锁)
前言 安装了mysq数据库,最终时为了实现在一个树莓派上实现多用户多进程操作的同步问题,避免数据并发出现一些错误,本篇安装了远程服务并且讲述了使用Qt进行悲观锁for update操作,命令行进行 ...
- C#连接操作MySQL数据库详细步骤 帮助类等(二次改进版)
最近准备写一个仓库管理的项目 客户要求使用C#编写MySQL存储数据 为了方便,整理了数据库操作的工具类 首先在项目App.config 文件下添加节点 <connectionStrings&g ...
- python 连接操作mysql数据库
开发数据库程序流程: 1.创建connection对象,获取cursor 2.使用cursor执行SQL 3.使用cursor获取数据.判断执行状态 4.提交事务 或者 回滚事务 import: 数据 ...
- ASP.NET Core使用EF Core操作MySql数据库
ASP.NET Core操作MySql数据库, 这样整套环境都可以布署在Linux上 使用微软的 Microsoft.EntityFrameworkCore(2.1.4) 和MySql出的 MySql ...
- robot_framewok自动化测试--(9)连接并操作 MySql 数据库
连接并操作 MySql 数据库 1.mysql数据库 1.1安装mysql数据库 请参考我的另一篇文章:MYSQL5.7下载安装图文教程 1.2.准备测试数据 请参考我的另一篇文章:Mysql基础教程 ...
- PHP操作MySQL数据库5个步骤
PHP操作MySQL数据库一般可分为5个步骤:1.连接MySQL数据库服务器:2.选择数据库:3.执行SQL语句:4.关闭结果集:5断开与MySQL数据库服务器连接. 1.用mysql_connect ...
- python操作mysql数据库的相关操作实例
python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...
- 转 用C API 操作MySQL数据库
用C API 操作MySQL数据库 参考MYSQL的帮助文档整理 这里归纳了C API可使用的函数,并在下一节详细介绍了它们.请参见25.2.3节,“C API函数描述”. 函数 描述 mysql_a ...
随机推荐
- 在Linux中搭建一个FTP服务器
在Linux中搭建一个ftp服务器,以供两个工作小组保管文件使用.禁用匿名.第一个小组使用ftp账号:ftp1,工作目录在:/var/ftp/ftp1:第二个小组使用ftp2,工作目录在:/var/f ...
- [NOIp 1998 提高组]Probelm 2 连接多位数【2011百度实习生笔试题】
/*====================================================================== [NOIp 1998 提高组]Probelm 2 连接 ...
- Android软键盘遮挡的四种解决方案
问题概述 在编辑框输入内容时会弹出软键盘,而手机屏幕区域有限往往会遮住输入界面,我们先看一下问题效果图: 输入用户名和密码时,系统会弹出键盘,造成系统键盘会挡住文本框的问题,如图所示: 输入密码时输入 ...
- (转载)postgresql navicat 客户端连接验证失败解决方法:password authentication failed for user
命令:su - postgres CREATE USER foo WITH PASSWORD 'secret'; ==================== 1.2个配置修改 postgresql.co ...
- Servlet Filter 3
11.MD5加密 /** * 使用md5的算法进行加密 */ public static String md5(String plainText) { byte[] secretBytes = nul ...
- 【linux】常见的网络管理命令
last:查看目前和过去的用户登录信息 [root@paulinux ~]# last root pts/0 192.168.1.106 Fri Jun 10 09:53 still logged i ...
- 【设计模式】装饰者模式(Decorator)
装饰者模式 动态的将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案. Java I/O中的装饰类 示例:coffee装饰者模式类图 顶层超类 被装饰组件-被装饰者 装饰者抽象类 ...
- Nginx实现内参:为什么架构很重要?
Nginx在web开发者眼中就是高并发高性能的代名词,其基于事件的架构也被众多开发者效仿.我从Nginx的网站找到一篇技术文章将Nginx是怎样实现的,文章是Nginx的产品老大Owen Garret ...
- 关于mysql数据库在输入密码后,滴的一声直接退出界面的解决办法
转自:http://www.2cto.com/database/201412/361751.html 网上搜索到的解决办法: 1.找到mysql安装目录下的bin目录路径.2.打开cmd,进入到bin ...
- MySQL类型转换
mysql为我们提供了两个类型转换函数:CAST和CONVERT,现成的东西我们怎能放过? BINARY[(N)] CHAR[(N)] DATE DATETIME DECIMAL SIGNED [IN ...