C#连接数据库

ADO.NET

是一组用于和数据源进行交互的面向对象类库
1、建立连接;2、打开连接;3、发送sql命令;4、执行命令;5、关闭连接

  • DataReader是一个向前的指针,本身并不包含数据,调用一次Read()方法它就向前到下一条记录,一个DataReader必须单独占用一个打开的数据库连接。一般用于大型数据处理。
  • DataAdapter象一座桥梁,一头连起数据库表,一头连起一个DataSet或者DataTable,在把数据库中的数据填充到DataSet或DataTable后就可以“过河拆桥”,不用再连接到数据库,而可以直接从DataSet或DataTable中获取数据。一般用于小型数据处理。

连接MySql数据库

常用的sql执行函数:

  • ExecuteReader():用于查询数据库。查询结果是返回MySqlDataReader对象,MySqlDataReader包含sql语句执行的结果,并提供Read()方法从结果中阅读一行。

  • ExecuteNonQuery():用于插入、更新和删除数据。

  • ExecuteScalar():用于查询数据时,返回查询结果集中第一行第一列的值,即只返回一个值。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
namespace TestMysql
{
class Program
{
// 连接字符串 用于连接数据库
private static readonly string connectionString = "server=localhost;port=3306;user=root;password=2824199842;database=test";

// 创建连接
private static readonly MySqlConnection connection = new MySqlConnection(connectionString);

private static void TestSelect()
{
string sql = "select * from student";
MySqlCommand cmd = new MySqlCommand(sql, connection);
MySqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())// 初始索引为-1 执行读取下一条数据
{
// 键值对方式获取值
Console.WriteLine("id:{0} name:{1} age:{2}", reader.GetInt64("id"), reader.GetString("name"), reader.GetInt32("age"));
}
}

private static void TestInsert()
{
string sql = "insert into student(id,name,age) values(2017004,'张小伟',34)";
MySqlCommand cmd = new MySqlCommand(sql, connection);
int rows = cmd.ExecuteNonQuery();// 返回受影响的行数
Console.WriteLine("添加成功!");
}

private static void TestUpdate()
{
string sql = "update student set name='张伟' where id=2017004";
MySqlCommand cmd = new MySqlCommand(sql, connection);
int rows = cmd.ExecuteNonQuery();
Console.WriteLine("修改成功!");
}

private static void TestDelete()
{
string sql = "delete from student where id=2017004";
MySqlCommand cmd = new MySqlCommand(sql, connection);
int rows = cmd.ExecuteNonQuery();
Console.WriteLine("删除成功!");
}

static void Main(string[] args)
{
try
{
// 打开连接
connection.Open();
// 执行sql
// TestSelect();
TestInsert();
// TestUpdate();
// TestDelete();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
finally
{
// 关闭连接
connection.Close();
}
}
}
}