C#操作mysql数据库

示例项目地址:https://download.csdn.net/download/include_heqile/11172447

包含数据表创建语句

创建一个winform窗体项目,然后在项目上右击,选择管理NuGet程序包,在浏览选项卡中搜索MySql.Data,然后选中搜索结果进行安装即可,VS会自动把需要用到的程序集添加到项目引用中

C#操作mysql数据库

然后我们就可以引用MySql.Data.MySqlClient命名空间中的类进行连接了

创建连接

String connetStr = "server=127.0.0.1;port=3306;user=root;password=1234; database=test;";
MySqlConnection conn = MySqlConnection(connetStr);

select查询

使用MySqlCommand对象的ExecuteReader方法,返回一个MySqlDataReader对象,然后使用while循环读取数据

try
{
   conn.Open();//打开通道,建立连接,可能出现异常,使用try catch语句
   Console.WriteLine("已经建立连接");
   MySqlCommand cmd = conn.CreateCommand();
   cmd.CommandText= "select * from resume where [email protected]";
   cmd.Parameters.AddWithValue("@1", name);
   MySqlDataReader rdr = cmd.ExecuteReader();
   while (rdr.Read()) {
	   gender = rdr.GetInt16(1);
	   education = rdr.GetInt16(2);
	   selfIntro = rdr.GetString(3);
   }
   rdr.Close();
}
catch (MySqlException ex)
{
   Console.WriteLine(ex.Message);
}
finally
{
   conn.Close();
}

insert

使用MySqlCommand对象的ExecuteNonQuery方法

try
{
	connetor.Open();//打开通道,建立连接,可能出现异常,使用try catch语句
	Console.WriteLine("已经建立连接");
	MySqlCommand cmd = connetor.CreateCommand();
	cmd.CommandText = "insert into resume (name, gender, education, others) values(@1,@2,@3,@4)";
	cmd.Parameters.AddWithValue("@1", name);
	cmd.Parameters.AddWithValue("@2", gender);
	cmd.Parameters.AddWithValue("@3", education);
	cmd.Parameters.AddWithValue("@4", selfIntroduce);
	if (cmd.ExecuteNonQuery() == 1)
		MessageBox.Show("插入成功!");
	else
		MessageBox.Show("插入失败!");
}
catch (MySqlException ex)
{
	Console.WriteLine(ex.Message);
}
finally
{
	connetor.Close();
}

MySqlCommand对象的实例化方式

除了上面的使用MySqlConnection对象的CreateCommand方法外,还可以使用下面的形式进行实例化:
MySqlCommand cmd = new MySqlCommand(mySelectQuery, myConnection);

顺便再说一下mysql创建数据表时的varchar(30),int(10)中括号里的数字的意义

这个数字是当启用了zerofill时才会有效果的,如果没有启用zerofill,那么这个数字是没有任何意义的

实验如下:

创建表

create table test_zerofill (
	id int(100) zerofill default 0 not null primary key
);

插入数据

insert into test_zerofill values(1);

查询数据

select * from test_zerofill;

结果如下:

+------------------------------------------------------------------------------------------------------+
| id                                                                                                   |
+------------------------------------------------------------------------------------------------------+
| 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 |
+------------------------------------------------------------------------------------------------------+

可以看到,括号里的数字只是在启用了zerofill时表示要填充到多少位,再无其他的作用