HeidiSQL 创建数据库、表、所需字段
create database studb;
use studb;
create table tb_stu
(
stuId int auto_increment primary key comment '主键',
stuName varchar(20) unique not null comment '学生姓名',
stuGender char(1) not null comment '性别',
stuAge int check(stuAge>16 and stuAge<120) not null,
stuBirthday date not null
);
点击执行进行创建
执行结果
ADO.NET介绍
ADO.NET,是一个COM组件库,用于在 Microsoft技术中访问数据。 创建控制台程序,在NuGet引用MySql.Data
双击项目,添加引用
<ItemGroup>
<PackageReference Include="MySql.Data" Version="8.0.32" />
</ItemGroup>
数据库连接与访问
数据库连接
public static void ConnectionDataBase()
{
string connectionstr = "Server=localhost;port=3306;Database=studb;Uid=root;Pwd=Yiqing7717";
//创建连接MySQL客户端对象
MySqlConnection mySqlConnection = new MySqlConnection(connectionstr);
//打开连接
mySqlConnection.Open();
if (mySqlConnection != null && mySqlConnection.State == ConnectionState.Open)
{
Console.WriteLine("MySQL连接成功");
}
}
数据插入
/// <summary>
/// 储存数据
/// </summary>
public static void ExecuteInsert()
{
try
{
//获取连接对象
var connection = ConnectionDataBase();
//通过连接对象创建命令对象
MySqlCommand mySqlCommand = connection!.CreateCommand();
//设置命令对象执行的命令文本--sql语句
string insertstr = "insert into tb_stu (stuName,stuGender,stuAge,stuBirthday) values ('王五','男',23,'1920-11-22') ";
mySqlCommand.CommandText = insertstr;
//执行sql命令
int row = mySqlCommand.ExecuteNonQuery();
if (row > 0)
{
Console.WriteLine("添加成功");
}
else
{
Console.WriteLine("添加失败");
}
}
catch (Exception er)
{
Console.WriteLine(er.Message.ToString());
}
}
方法1
///数据库访问语句
private static readonly string ConnectString = "Server=localhost;port=3306;Database=studb;Uid=root;Pwd=123456";
///测试
public static void TestADOCRUD()
{
// 测试数据库连接是否正常
ConnectDatabase();
// 测试数据查询操作
string insertSql = "insert into tb_stu (stuName,stuGender,stuAge,stuBirthday) values ('李四','男',23,'1920-11-22')";
ExecuteUpdate(insertSql);
// 测试数据修改操作
string updateSql = "update tb_stu set stuGender='女',stuAge=33 where stuId=1";
ExecuteUpdate(updateSql);
// 测试数据删除操作
string deleteSql = "delete from tb_stu where stuId=1";
ExecuteUpdate(deleteSql);
}
/// <summary>
/// 1、连接MySQL数据库
/// </summary>
public static MySqlConnection? ConnectDatabase()
{
// 创建连接MySql客户端对象
MySqlConnection connection = new MySqlConnection(ConnectString);
// 打开连接
connection.Open();
// 判断连接对象的状态
if (connection != null && connection.State == ConnectionState.Open)
{
Console.WriteLine("连接上MySql数据库");
}
else
{
Console.WriteLine("连接MySql失败");
}
return connection;
}
///执行sql语句
public static void ExecuteUpdate(string? sql)
{
// 2.1 获取连接对象
var connection = ConnectDatabase();
try
{
// 2.2 通过连接对象创建命令对象
MySqlCommand cmd = connection!.CreateCommand();
// 2.3 设置命令对象执行的命令文本【sql语句】
cmd.CommandText = sql;
// 2.4 执行SQL命令
int row = cmd.ExecuteNonQuery();
// 2.5 处理返回结果
if (row > 0)
{
Console.WriteLine("操作成功");
}
else
{
Console.WriteLine("操作失败");
}
}
finally
{
// 关闭连接
CloseConnection(connection!);
}
}
/// <summary>
/// 关闭连接对象的方法
/// </summary>
public static void CloseConnection(MySqlConnection connection)
{
if (connection != null && connection.State == ConnectionState.Open)
{
// 关闭连接对象
connection.Close();
// 把连接对象置空
connection = null!;
}
}
方法2
public static void TestADOCRUD()
{
MySqlParameter[] sqlParameter = new MySqlParameter[]
{
new MySqlParameter("@stuId",3),
new MySqlParameter("@stuName","王五"),
};
ExecuteQuery("select * from tb_stu where stuId=@stuId and stuName=@stuName", sqlParameter);
}
/// <summary>
/// 3、执行Sql查询操作
/// </summary>
public static void ExecuteQuery(string sql,params MySqlParameter[] parameters)
{
// 3.1 获取连接对象
var connection = ConnectDatabase();
try
{
//3.2 创建命令对象
MySqlCommand command = new MySqlCommand(sql, connection);
// 设置参数
foreach (var parameter in parameters)
{
command.Parameters.Add(parameter);
}
//3.3 通过命令对象执行Sql语句返回数据读取器
MySqlDataReader dataReader = command.ExecuteReader();
Console.WriteLine("编号\t姓名\t年龄\t性别\t生日");
// 3.4 获取读取器中的数据
while (dataReader.Read())
{
// 获取行中每一个列中的数据
// 可以通过列的索引或者列的名称
Console.WriteLine($"{
dataReader.GetInt32(0)}\t" +
$"{
dataReader.GetString("stuName")}" +
$"\t{
dataReader.GetInt32("stuAge")}\t" +
$"{
dataReader.GetString("stuGender")}\t" +
$"{
dataReader.GetDateTime("stuBirthday")}");
}
// 关闭阅读器对象
dataReader.Close();
}
finally
{
// 关闭连接
CloseConnection(connection!);
}
}