cdk
2025-03-24 9694541db429678cbfcf8b769184856e6a6ab603
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
128
129
130
131
132
133
134
135
136
137
138
using System.Data;
using Microsoft.Data.SqlClient;
using MES.Service.util;
 
namespace MES.Service.DB;
 
/// <summary>
/// 用于SQL Server数据库访问的帮助类
/// </summary>
public class SqlServerSQLHelper
{
    private readonly string _connectionString;
 
    private readonly string ConnectionString =
        AppsettingsUtility.Settings.DataBaseConn;
 
    public SqlServerSQLHelper()
    {
        _connectionString = ConnectionString;
    }
 
    public SqlServerSQLHelper(string connectionString)
    {
        _connectionString = connectionString;
    }
 
    public DataTable ExecuteQuery(string query)
    {
        using (var connection = new SqlConnection(_connectionString))
        using (var command = new SqlCommand(query, connection))
        {
            connection.Open();
            var dataTable = new DataTable();
            using (var reader = command.ExecuteReader())
            {
                dataTable.Load(reader);
            }
            return dataTable;
        }
    }
 
    // 执行非查询操作 对数据库进行 增、删、改 操作(1) 
    public int ExecuteNonQuery(string query)
    {
        using (var connection = new SqlConnection(_connectionString))
        using (var command = new SqlCommand(query, connection))
        {
            connection.Open();
            return command.ExecuteNonQuery();
        }
    }
 
    public int ExecuteNonQueryWithTransaction(SqlConnection connection,
        SqlTransaction transaction, string query)
    {
        using (var command = connection.CreateCommand())
        {
            command.Transaction = transaction;
            command.CommandText = query;
            return command.ExecuteNonQuery();
        }
    }
 
    public int ExecuteTransaction(string query1)
    {
        using (var connection = new SqlConnection(_connectionString))
        {
            connection.Open();
            var transaction = connection.BeginTransaction();
            int totalRowsAffected = 0;
 
            try
            {
                totalRowsAffected = ExecuteNonQueryWithTransaction(
                    connection, transaction, query1);
                transaction.Commit();
            }
            catch (Exception ex)
            {
                transaction.Rollback();
                throw new Exception(ex.Message);
            }
            return totalRowsAffected;
        }
    }
 
    public object ExecuteScalar(string query)
    {
        using (var connection = new SqlConnection(_connectionString))
        using (var command = new SqlCommand(query, connection))
        {
            connection.Open();
            return command.ExecuteScalar();
        }
    }
 
    public void ExecuteStoredProcedure(string procedureName,
        SqlParameter[] parameters)
    {
        using (var connection = new SqlConnection(_connectionString))
        using (var command = new SqlCommand(procedureName, connection))
        {
            command.CommandType = CommandType.StoredProcedure;
            command.Parameters.AddRange(parameters);
            connection.Open();
            command.ExecuteNonQuery();
        }
    }
 
    public DataTable ExecuteDataTable(string sql)
    {
        return ExecuteDataTable(sql, CommandType.Text, null);
    }
 
    public DataTable ExecuteDataTable(string sql, CommandType commandType)
    {
        return ExecuteDataTable(sql, commandType, null);
    }
 
    public DataTable ExecuteDataTable(string sql, CommandType commandType,
        SqlParameter[] parameters)
    {
        var data = new DataTable();
        using (var connection = new SqlConnection(_connectionString))
        using (var command = new SqlCommand(sql, connection))
        {
            command.CommandType = commandType;
            if (parameters != null)
                command.Parameters.AddRange(parameters);
 
            using (var adapter = new SqlDataAdapter(command))
            {
                adapter.Fill(data);
            }
        }
        return data;
    }
}