-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathISQLConnectionUtils.cs
More file actions
101 lines (92 loc) · 4.29 KB
/
Copy pathISQLConnectionUtils.cs
File metadata and controls
101 lines (92 loc) · 4.29 KB
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
using System;
using System.Collections.Generic;
using MySql.Data.MySqlClient;
using RYCBEditorX.Utils;
namespace RYCBEditorX.MySQL
{
[SQLOperations]
public interface ISQLConnectionUtils
{
/// <summary>
/// 数据库连接对象<see cref="MySql.Data.MySqlClient.MySqlConnection"/>
/// </summary>
public MySqlConnection MySqlConnection
{
get; set;
}
/// <summary>
/// 数据库连接是否打开
/// </summary>
public bool ConnectionOpened
{
get; set;
}
/// <summary>
/// 初始化数据库连接。
/// </summary>
void Init();
/// <summary>
/// 选择数据库中一张表的若干数据。
/// </summary>
/// <param name="table_name">表名</param>
/// <param name="field_name">(可选) 字段名</param>
/// <param name="condition">(可选) 查询条件</param>
/// <param name="order_by">(可选) 排序规则</param>
/// <param name="order_by_field">(可选) 排序字段</param>
/// <param name="group_by">(可选) 分组字段</param>
/// <param name="having">(可选) 分组后条件</param>
/// <param name="limit">(可选) 分页参数,用逗号分隔</param>
/// <returns></returns>
[SQLPrivileges.Select]
List<Dictionary<string, object>> Select(string table_name, string field_name = "*",
string condition = "", SQL_ORDER_BY_KEYWORDS order_by = SQL_ORDER_BY_KEYWORDS.ASC,
string order_by_field = "", string group_by = "", string having = "", string limit = "");
/// <summary>
/// 向数据库中添加一个类型。目前只支持添加表。
/// </summary>
/// <param name="type">添加的类型(目前只支持<see cref="SQL_CREATION_TYPE.TABLE"/>)</param>
/// <param name="table_name">添加的表的名称</param>
/// <param name="fields">添加的字段</param>
/// <param name="types">添加字段的类型</param>
/// <param name="comment">添加字段的描述(若无只需传一个空列表 <c>[]</c>)</param>
/// <param name="table_comment">(可选) 添加表的描述</param>
/// <returns>是否成功</returns>
/// <exception cref="ArgumentException"></exception>
[SQLPrivileges.Create]
bool Create(SQL_CREATION_TYPE type, string table_name,
List<string> fields, List<string> types, List<string> comment, string table_comment = "");
/// <summary>
/// 向数据表中插入若干行数据。
/// </summary>
/// <param name="table_name">需插入数据的表名</param>
/// <param name="fields_list">需插入的字段列表,如果为空,则插入所有字段</param>
/// <param name="values_list">需插入的字段对应的值,可以是单行值或多行值的集合</param>
/// <returns>是否成功</returns>
/// <exception cref="ArgumentException">当字段列表和对应的值列表不匹配时抛出</exception>
/// <exception cref="InvalidOperationException">当操作数据库时出现异常时抛出</exception>
[SQLPrivileges.Insert]
[SQLCritical]
bool Insert(string table_name, string fields_list, string values_list);
/// <summary>
/// 更新指定表中的数据。
/// </summary>
/// <param name="table_name">指定的表名</param>
/// <param name="fields">需更新的字段</param>
/// <param name="vals">需更新的字段值</param>
/// <param name="condition">(可选)更新的条件</param>
/// <returns>是否成功</returns>
/// <exception cref="ArgumentException"></exception>
[SQLPrivileges.Update]
bool Update(string table_name, List<string> fields, List<string> vals, string condition = "");
/// <summary>
/// 从表中删除行。
/// </summary>
/// <param name="table_name">需删除数据的表</param>
/// <param name="condition">(可选) 删除条件</param>
/// <returns>是否成功</returns>
/// <exception cref="FormatException"></exception>
[SQLPrivileges.Delete]
[SQLCritical]
bool Delete(string table_name, string condition = "");
}
}