1
yhj
2024-07-24 5e5d945e91568b973faa27d8ab0bcef99fc4a6c5
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
 
namespace CSFramework.DB
{
    /// <summary>
    /// 数据库接口
    /// </summary>
    public interface IDatabase : IAdoFactory, IDbMetalQuery
    {
        DatabaseType DatabaseType { get; }
 
        int DefaultPort { get; }
 
        int CommandTimeout { get; }
 
        int ConnectionTimeout { get; }
 
        Type DateTimeType { get; }
 
        string ConnectionString { get; set; }
 
        /// <summary>
        /// MSSQL,Oracle,MySQL数据库类型转换为通用的System.Data.DbType
        /// </summary>
        /// <param name="sourceType">MSSQL,Oracle,MySQL数据库类型</param>
        /// <returns></returns>
        DbType ToDbType(string sourceType);
 
        /// <summary>
        /// MSSQL,Oracle,MySQL数据库类型转换为通用的.NET对象类型(Type)
        /// </summary>
        /// <param name="sourceType">MSSQL,Oracle,MySQL数据库类型</param>
        /// <returns></returns>
        Type ToNetType(string sourceType);
 
        DateTime GetServerTime();
 
        DbTransaction TransBegin();
 
        void TransCommit(DbTransaction trans, bool closeConnection = false);
 
        void TransRollback(DbTransaction trans, bool closeConnection = false);
 
        DataSet GetDataSet(string SQL);
 
        DataSet GetDataSet(DbCommand cmd);
 
        DataSet GetDataSet(string text, CommandType type,
            IDataParameter[] paras);
 
        DataTable GetTable(string SQL, string tableName = "");
 
        /// <summary>
        /// 获取指定记录条数的数据
        /// </summary>
        /// <param name="top">记录条数</param>
        /// <param name="tableName">表名</param>
        /// <param name="fields">字段列表,如:ID,Name,Price</param>
        /// <param name="where">查询条件SQL命令参数</param>
        /// <param name="orderBy">排序,如:ID DESC,若有多个排序,参考:ID DESC,Name ASC。注意不能带Order By关键词</param>
        /// <returns></returns>
        DataTable GetTop(int top, string tableName, string fields = "",
            List<DbParameter> where = null, string orderBy = "");
 
        DataTable GetTable(DbCommand cmd, string tableName = "");
 
        DataRow GetDataRow(string SQL);
 
        int ExecuteSQL(string SQL);
 
        int ExecuteCommand(DbCommand cmd);
 
        object ExecuteScalar(string SQL);
 
        object ExecuteScalar(DbCommand cmd);
 
        DbDataReader ExecuteReader(string SQL);
 
        DbDataReader ExecuteReader(DbCommand cmd);
 
        List<T> ExecuteReader<T>(string SQL, Func<DbDataReader, T> action)
            where T : new();
 
        List<T> ExecuteReader<T>(DbCommand cmd, Func<DbDataReader, T> action)
            where T : new();
 
        List<T> ExecuteReaderList<T>(string SQL) where T : new();
 
        List<T> ExecuteReaderList<T>(DbCommand cmd) where T : new();
 
        List<string> GetStringList(string SQL);
 
        List<string> GetStringList(DbCommand cmd);
 
        T ExecuteReader<T>(DbCommand cmd) where T : new();
 
        T ExecuteReader<T>(string SQL) where T : new();
 
        int ExecuteTrans(DbTransaction trans, string SQL);
 
        int ExecuteTrans(DbTransaction trans, DbCommand cmd);
 
        void Close(DbConnection connection);
 
        /// <summary>
        /// 返回包含参数符号的参数名称,比如:@Code, :Code, ?p_Code
        /// </summary>
        /// <param name="paramName"></param>
        /// <returns></returns>
        string ParseParamName(string paramName);
 
        /// <summary>
        /// 获取当前表最新(最大)的自增字段值
        /// </summary>
        /// <param name="tableName">表名</param>
        /// <returns></returns>
        int GetMaxID(string tableName);
 
        bool UpdateDataSet(DataTable ds, string tableName, string KEY);
 
 
        bool InstDataSet(DataTable ds, string tableName);
    }
}