c# sqlhelper类

主要包含了事务进来,是个亮点:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Net.Mail;
using System.Net;


namespace MIAS_DigitalTool_Platform.SqlhelperClass
{
    public static class sqlHelper
    {        
        public static readonly string connectionString = StaticClass.global.connectionCurrent;
        // 数据库连接字符串,根据实际情况进行修改
        //public static readonly string connectionString = "Data Source=192.168.70.8;Initial Catalog=数据库名;Integrated Security=True";

        // 执行查询并返回DataTable
        public static DataTable ExecuteDataTable(string sql, CommandType commandType, params SqlParameter[] parameters)
        {
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                SqlCommand command = new SqlCommand(sql, connection);
                command.CommandType = commandType;
                if (parameters != null)
                {
                    foreach (SqlParameter parameter in parameters)
                    {
                        command.Parameters.Add(parameter);
                    }
                }

                try
                {
                    connection.Open();
                    SqlDataAdapter adapter = new SqlDataAdapter(command);
                    DataTable dataTable = new DataTable();
                    adapter.Fill(dataTable);
                    return dataTable;
                }
                catch (Exception ex)
                {
                    Serilog.Log.Information(ex.Message);
                    throw new Exception("ExecuteDataTable Error: " + ex.Message);
                }
            }
        }

        // 执行非查询操作,返回受影响的行数
        public static int ExecuteNonQuery(string sql, CommandType commandType, params SqlParameter[] parameters)
        {
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                SqlCommand command = new SqlCommand(sql, connection);
                command.CommandType = commandType;
                if (parameters != null)
                {
                    foreach (SqlParameter parameter in parameters)
                    {
                        command.Parameters.Add(parameter);
                    }
                }

                try
                {
                    connection.Open();
                    return command.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    Serilog.Log.Information(ex.Message);
                    throw new Exception("ExecuteNonQuery Error: " + ex.Message);

                }
            }
        }

        // 执行查询并返回单个值
        public static object ExecuteScalar(string sql, CommandType commandType, params SqlParameter[] parameters)
        {
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                SqlCommand command = new SqlCommand(sql, connection);
                command.CommandType = commandType;
                if (parameters != null)
                {
                    foreach (SqlParameter parameter in parameters)
                    {
                        command.Parameters.Add(parameter);
                    }
                }

                try
                {
                    connection.Open();
                    return command.ExecuteScalar();
                }
                catch (Exception ex)
                {
                    Serilog.Log.Information(ex.Message);
                    throw new Exception("ExecuteScalar Error: " + ex.Message);
                }
            }
        }

        // 执行事务性操作的方法,支持参数化查询
        public static void ExecuteTransaction(string[] sqlQueries, SqlParameter[][] parameters, CommandType commandType)
        {
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                connection.Open();
                using (SqlTransaction transaction = connection.BeginTransaction())
                {
                    try
                    {
                        foreach (string sqlQuery in sqlQueries)
                        {
                            // 为每个查询创建SqlCommand对象,并添加参数
                            SqlCommand command = new SqlCommand(sqlQuery, connection, transaction);
                            command.CommandType = commandType; // 可以是CommandType.Text或CommandType.StoredProcedure

                            // 如果有参数,添加到SqlCommand对象
                            if (parameters != null && parameters.Length > 0)
                            {
                                foreach (SqlParameter parameter in parameters[0]) // 假设每个查询对应一组参数
                                {
                                    command.Parameters.Add(parameter);
                                }
                            }

                            // 执行命令
                            command.ExecuteNonQuery();
                        }
                        transaction.Commit();
                    }
                    catch (Exception ex)
                    {
                        Serilog.Log.Information(ex.Message);
                        transaction.Rollback();
                        throw new Exception("Transaction Error: " + ex.Message);
                    }
                }
            }
        }

        public static void SMTP(string from,string fromAlias, string[] to, string subject, string body, string ipaddr, int port, string creditAccount, string password)
        {
            try
            {
                ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
                // 创建电子邮件消息对象
                MailMessage message = new MailMessage
                {
                    From = new MailAddress(from, fromAlias)
                };
                foreach (string recipient in to)
                {
                    message.To.Add(new MailAddress(recipient));
                }

                // 设置邮件主题和正文
                message.Subject = subject;
                message.Body = body;
                message.BodyEncoding = Encoding.UTF8;

                // 创建SMTP客户端
                SmtpClient client = new SmtpClient(ipaddr, port); // SMTP服务器地址和端口
                client.EnableSsl = false; // 如果服务器支持SSL

                如果SMTP服务器需要身份验证
                client.Credentials = new NetworkCredential(creditAccount, password);


                // 发送邮件
                client.Send(message);
                Serilog.Log.Warning("邮件发送成功!");
            }
            catch (Exception ex)
            {
                Serilog.Log.Error(ex.Message);
            }
        }
    }
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值