当前位置:Gxlcms > 数据库问题 > C#连接操作 MySQL 数据库实例(使用官方驱动)

C#连接操作 MySQL 数据库实例(使用官方驱动)

时间:2021-07-01 10:21:17 帮助过:45人阅读


//连接字符串

string connStr = “Server=localhost;Database=unmicc;Uid=unmicc;Pwd=xxxxxx;CharSet=utf8;”;

MySqlConnection con = new MySqlConnection(connStr);

con.Open();//打开连接

MySqlCommand cmd = new MySqlCommand(“select now()”,con);

object time = cmd.ExecuteScalar(); //或是 cmd.ExecuteReader();cmd.ExecuteNonQuery();

MessageBox.Show(time.ToString());

//或 Console.WriteLine(time.ToString());

con.Close();

上面的连接字符串应该好理解,另外还有更多的配置参数,例如端口号、连接池相关的配置等,具体请参考手册中的 Connection Options。其他的操作就是标准的 ADO.NET 的了,再就是可以处理各步骤的异常,catch MySql.Data.MySqlClient.MySqlException 这个类型的异常。其他的用于填充数据的 MySqlDataAdapter 和  MySqlDataReader 也是备好了的。

我想,在做正式的应用时,为防止 SQL 注入时关于参数化查询肯定会被提出来的,那就来看看这个 MySQL 官方驱动如何处理参数化查询的。它所用的方式和 SqlServer Provider 是一样的,用 @author 这样的形式来标识参数,并且同样支持 AddWithValue(string name, object value) 的方式。请看代码:


代码如下:


string sql = “update wp_posts set post_author=@author and post_status=@status where id=@id”;

//可以用 ? 号的形式,如,但 ? 号的形式不推荐使用

//string sql = “update wp_posts set post_author=?author and post_status=?status where id=?id”;

MySqlCommand cmd = con.CreateCommand();

cmd.CommandText = sql;

cmd.Parameters.AddWithValue(“@author”, 1);

//cmd.Parameters.AddWithValue(“?author”, 1);

cmd.Parameters.AddWithValue(“@status”, “publish”);

//cmd.Parameters.AddWithValue(“?status”, “publish”);

cmd.Parameters.AddWithValue(“@id”, 23);

//cmd.Parameters.AddWithValue(“?id”,23);

cmd.ExecuteNonQuery();

注意到,同时还能用 ?author 的形式来标识参数,不过现在不推荐这么用了,也许是为了统一成 @author 的格式吧。不知道什么时候能像 JDBC 一样,直接用 ? 来作为占位符。

对于 InnoDB 存储引擎的 MySQL 是支持事物的,这个官方的的驱动支持事物的代码如下:



MySqlTransaction trans = con.BeginTransaction(); //启用事物

trans.Commit(); //正常时提交

trans.Rollback(); //异常时回滚



下一篇将介绍如何使用 SourceForge 上的开源 MySQL .Net 驱动怎么去操作 MySQL 数据库的。

除声明外,跑步客文章均为原创,转载请以链接形式标明本文地址
  C#连接操作 MySQL 数据库实例(使用官方驱动)

本文地址:  http://www.paobuke.com/develop/c-develop/pbk23135.html






相关内容

技术分享图片说说C#的async和await的具体用法技术分享图片C# 中string.split用法详解技术分享图片90分钟实现一门编程语言(极简解释器教程)技术分享图片C#读写config配置文件的方法
技术分享图片C#运算符重载用法实例分析技术分享图片C#中调用SAPI实现语音合成的2种方法技术分享图片C#接口(Interface)用法分析技术分享图片C#中winform控制textbox输入只能为数字的方法

C#连接操作 MySQL 数据库实例(使用官方驱动)

标签:连接   ima   标准   理解   variant   nsa   ada   oca   ndt   

人气教程排行