文章目录
- 创建表
- 插入数据
- 查询数据
包含数据表创建语句
创建一个winform窗体项目,然后在项目上右击,选择管理NuGet程序包,在浏览选项卡中搜索MySql.Data,然后选中搜索结果进行安装即可,VS会自动把需要用到的程序集添加到项目引用中
然后我们就可以引用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
时表示要填充到多少位,再无其他的作用