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);

}

}

}

}

相关推荐
超级大只老咪7 小时前
数组相邻元素比较的循环条件(Java竞赛考点)
java
小浣熊熊熊熊熊熊熊丶7 小时前
《Effective Java》第25条:限制源文件为单个顶级类
java·开发语言·effective java
毕设源码-钟学长7 小时前
【开题答辩全过程】以 公交管理系统为例,包含答辩的问题和答案
java·eclipse
啃火龙果的兔子7 小时前
JDK 安装配置
java·开发语言
星哥说事7 小时前
应用程序监控:Java 与 Web 应用的实践
java·开发语言
派大鑫wink7 小时前
【JAVA学习日志】SpringBoot 参数配置:从基础到实战,解锁灵活配置新姿势
java·spring boot·后端
xUxIAOrUIII8 小时前
【Spring Boot】控制器Controller方法
java·spring boot·后端
Dolphin_Home8 小时前
从理论到实战:图结构在仓库关联业务中的落地(小白→中级,附完整代码)
java·spring boot·后端·spring cloud·database·广度优先·图搜索算法
醇氧8 小时前
org.jetbrains.annotations的@Nullable 学习
java·开发语言·学习·intellij-idea
Java&Develop8 小时前
Aes加密 GCM java
java·开发语言·python