文章目录


示例项目地址:https://download.csdn.net/download/include_heqile/11172447创建连接select查询insert`MySqlCommand`对象的实例化方式顺便再说一下mysql创建数据表时的varchar(30),int(10)中括号里的数字的意义
  • 创建表
  • 插入数据
  • 查询数据


包含数据表创建语句

创建一个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 = new MySqlConnection(connetStr);

select查询

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

try
{
conn.Open();//打开通道,建立连接,可能出现异常,使用try catch语句
Console.WriteLine("已经建立连接");
MySqlCommand cmd = conn.CreateCommand();
cmd.CommandText= "select * from resume where name=@1";
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​​时表示要填充到多少位​,再无其他的作用