编辑
2025-09-22
C#
00

摘要

SqlSugar 是一款功能强大的.NET 开源 ORM 框架。SqlSugar 具有开箱即用的特点,能够让用户快速地搭建自己的 ORM 项目。在过去的几年里,SqlSugar 一直在不断地更新和完善,目前已经成为了一款广受欢迎的开源框架。

SqlSugar 提供了强大的 SQL 数据库访问能力,用户可以使用简单的 API 实现对数据库的增删改查等操作。SqlSugar 还提供了一系列的高级功能,如延迟加载、缓存、连接池、事务等,能够让用户轻松地实现复杂的业务逻辑。

SqlSugar 的代码设计非常简洁清晰,注重代码的可读性和可维护性。框架采用了松散耦合的设计模式,使得不同的组件之间可以相对独立地进行开发和测试。此外,SqlSugar 还支持多种数据库类型,包括 MySQL、Oracle、SQL Server、PostgreSQL 等,能够满足不同用户的需求。

一句话SqlSugar 比EF更适合中国人!!!

编辑
2025-09-22
C#
00

摘要

在C#中调用存储过程是一种常见的数据库交互方式,它可以帮助你执行复杂的数据库操作。

  1. 先将SQL业务逻辑在SQL中编辑好
  2. 在CMD中设置CMD的格式类型为存储过程类型
  3. SQL语句使用存储过程名称,参数和存储过程中参数一致

正文

1. 准备存储过程

确保数据库中已经定义了所需的存储过程。存储过程可以封装复杂的SQL查询、更新、删除等操作,通过参数传递数据。

2. 创建数据库连接

使用SqlConnection对象来建立与数据库的连接。连接字符串应包含服务器地址、数据库名以及认证信息。

3. 创建SqlCommand对象

创建一个SqlCommand对象,并将CommandType设置为CommandType.StoredProcedure,这表明你将执行一个存储过程。同时,指定存储过程的名称。

4. 添加参数

如果存储过程需要参数,使用Parameters.AddWithValue方法添加参数。确保参数名称和类型与存储过程中定义的一致。

编辑
2025-09-22
C#
00

摘要

事务是作为单个逻辑单元执行的一系列操作,它是一个不可分割的工作逻辑单元。它包含了一组数据库操作命令,这组命令要么全部执行,要么全部不执行。 举个例子,我们经常用到的 ATM 存取款机,比如转账的时候,是先减去转出账户的金额,然后再在指定转入账户的金额加上转出的金额。如果刚好这个时候转出的操作已经执行完成,但是由于系统的故障,导致转入的操作失败了。那么怎么办?这就需要用到事务了,只要事务里面有一条命令未成功执行,那么数据就会回滚到事务开始之前的状态。

正文

在ADO.NET 中,可以使用Connection 和Transaction 对象来控制事务。若要执行事务,请执行下列操作:

  1. 调用Connection 对象的BeginTransaction 方法来标记事务的开始。
  2. 将Transaction 对象分配给要执行的Command的Transaction 属性。
  3. 执行所需的命令。
  4. 调用Transaction 对象的Commit 方法来完成事务,或调用Rollback 方法来取消事务。 当然ADO.NET事务处理有优点和缺点,运用起来看具体情况了。

优点: – 简单性 – 和数据据事务差不多的快 – 独立于数据库,不同数据库的专有代码被隐藏了

缺点: – 事务不能跨越多个数据库连接 – 事务执行在数据库连接层上,所以需要在事务过程中维护一个数据库连接。

image.png

编辑
2025-09-22
C#
00

摘要

SqlDataAdapter对象通过无连接的方式完成数据库和本地DataSet之间的交互。 ADO.NET SqlDataAdapter对象通过SelectCommand、InsertCommand、UpdateCommand和 DeleteCommand属性为后台数据库提供对应的操作命令,并传递需要的参数。一般情况下,只需要提供SELECT语句和连接字符串创建 SqlDataAdapter对象,然后利用SqlCommandBuilder对象生成InsertCommand、UpdateCommand和DeleteCommand属性。

正文

C#
// 定义一个SQL查询字符串,用于从wms_material表中选择所有列,其中mlfb列的值包含用户输入的文本(txtSearch.Text) string sql = "select * from wms_material where mlfb like '%" + txtSearch.Text + "%'"; // 创建一个新的DataSet对象,用于存储从数据库查询返回的数据 DataSet ds = new DataSet(); // 创建一个SqlCommand对象,用于执行上面定义的SQL查询 // 这里假设已经有一个名为connection的数据库连接对象 SqlCommand cmd = new SqlCommand(sql, connection); // 创建一个SqlDataAdapter对象,用于执行SqlCommand // SqlDataAdapter能够在DataSet和数据库之间建立桥梁,用于填充DataSet SqlDataAdapter adapter = new SqlDataAdapter(cmd); // 使用SqlDataAdapter对象的Fill方法,将查询结果填充到DataSet对象ds中 adapter.Fill(ds);
编辑
2025-09-22
C#
00

摘要


使用Connection对象与数据源建∥.连接后,可以使用Command对象对数据源执行查询、添加、删除利和修收等各种操作,操作实现的方可以是使用SQL语句,也可以是使用存储过程。根据.NET Framework数据提供程序的不同Command对象可以分成4种,分别是SqlCommand、OleDbCommand、OdbcCommand和DracleCommand,在实际的编程过程中应该根据访问的数据源不同,选择相对应的Command对象。

正文


属性

CommandText获取或设置要在数据源中执行的 Transact-SQL 语句、表名或存储过程。
CommandTimeout获取或设置在终止尝试执行命令并生成错误之前的等待时间(以秒为单位)。
CommandType获取或设置一个值,该值指示解释 CommandText 属性的方式。
Connection获取或设置 SqlCommand 的此实例使用的 SqlConnection
DbConnection获取或设置此 DbConnection 使用的 DbCommand。 (继承自 DbCommand)
DbParameterCollection获取 DbParameter 对象的集合。 (继承自 DbCommand)
DbTransaction获取或设置将在其中执行此 DbCommand 对象的 DbTransaction。 (继承自 DbCommand)
DesignTimeVisible获取或设置一个值,该值指示命令对象是否应在 Windows 窗体设计器控件中可见。
Notification获取或设置一个指定绑定到此命令的 SqlNotificationRequest 对象的值。
Parameters获取 SqlParameterCollection
Transaction获取或设置要在其中执行 SqlTransactionSqlCommand
UpdatedRowSource获取或设置命令结果如何应用于 DataRow Update 方法 DbDataAdapter的用法。

方法

BeginExecuteNonQuery()启动此 SqlCommand 描述的 Transact-SQL 语句或存储过程的异步执行。
BeginExecuteNonQuery(AsyncCallback, Object)在给定回调过程和状态信息的情况下,启动此 SqlCommand 描述的 Transact-SQL 语句或存储过程的异步执行。
BeginExecuteReader()启动此 SqlCommand 描述的 Transact-SQL 语句或存储过程的异步执行,并从服务器中检索一个或多个结果集。
BeginExecuteReader(AsyncCallback, Object)在给定回调过程和状态信息的情况下,启动此 SqlCommand 描述的 Transact-SQL 语句或存储过程的异步执行,并从服务器中检索一个或多个结果集。
BeginExecuteReader(AsyncCallback, Object, CommandBehavior)在给定回调过程和状态信息的情况下,通过使用 CommandBehavior 值之一并从服务器中检索一个或多个结果集,启动由此 SqlCommand 描述的 Transact-SQL 语句或存储过程的异步执行。
BeginExecuteReader(CommandBehavior)通过使用 CommandBehavior 值之一,启动此 SqlCommand 描述的 Transact-SQL 语句或存储过程的异步执行。
BeginExecuteXmlReader()启动此 SqlCommand 描述的 Transact-SQL 语句或存储过程的异步执行,并将结果作为 XmlReader 对象返回。
BeginExecuteXmlReader(AsyncCallback, Object)通过使用回调过程,启动此 SqlCommand 描述的 Transact-SQL 语句或存储过程的异步执行,并将结果作为 XmlReader 对象返回。
Cancel()尝试取消 SqlCommand 的执行。
CreateDbParameter()创建 DbParameter 对象的新实例。 (继承自 DbCommand)
CreateParameter()创建 SqlParameter 对象的新实例。
EndExecuteNonQuery(IAsyncResult)完成 Transact-SQL 语句的异步执行。
EndExecuteReader(IAsyncResult)完成 Transact-SQL 语句的异步执行,从而返回请求的 SqlDataReader
EndExecuteXmlReader(IAsyncResult)完成 Transact-SQL 语句的异步执行,从而将请求的数据以 XML 形式返回。
ExecuteDbDataReader(CommandBehavior)针对其连接执行命令,返回可用于访问结果的命令 DbDataReader 。 (继承自 DbCommand)
ExecuteDbDataReaderAsync(CommandBehavior, CancellationToken)提供程序应执行该方法对 ExecuteReader 重载提供非默认的实现。 默认实现调用同步 ExecuteReader() 方法并返回已完成任务,以便阻止调用线程。 如果传递到已取消的取消标记,则默认实现将返回已取消的任务。 ExecuteReader 引发的异常将通过返回的任务异常属性传递。 该方法可用于请求操作之前接受取消标记。 实现可能会忽略该请求。 (继承自 DbCommand)
ExecuteNonQuery()对连接执行 Transact-SQL 语句并返回受影响的行数。
ExecuteNonQueryAsync()一个异步版本 ExecuteNonQuery(),它对其连接对象执行命令,返回受影响的行数。 通过 CancellationToken.None 调用 ExecuteNonQueryAsync(CancellationToken)。 (继承自 DbCommand)
ExecuteNonQueryAsync(CancellationToken)异步版本,该版本ExecuteNonQuery()针对连接执行 Transact-SQL 语句,并返回受影响的行数。 取消标记可用于在命令超时超过前请求放弃操作。 将通过返回的任务对象报告异常。
ExecuteReader()CommandText 发送到 Connection,并生成 SqlDataReader
ExecuteReader(CommandBehavior)CommandText 发送到 Connection,并使用 CommandBehavior 值之一生成 SqlDataReader
ExecuteReaderAsync()ExecuteReader() 的异步版本,它可以将 CommandText 发送到 Connection,并生成 SqlDataReader。 将通过返回的任务对象报告异常。
ExecuteReaderAsync(CancellationToken)ExecuteReader() 的异步版本,它可以将 CommandText 发送到 Connection,并生成 SqlDataReader。 取消标记可用于在命令超时超过前请求放弃操作。 将通过返回的任务对象报告异常。
ExecuteReaderAsync(CommandBehavior)ExecuteReader(CommandBehavior) 的异步版本,用于将 CommandText 发送到 Connection,并生成一个 SqlDataReader。 将通过返回的任务对象报告异常。
ExecuteReaderAsync(CommandBehavior, CancellationToken)ExecuteReader(CommandBehavior) 的异步版本,它可以将 CommandText 发送到 Connection,并生成 SqlDataReader。 取消标记可用于在命令超时超过前请求放弃操作。 将通过返回的任务对象报告异常。
ExecuteScalar()执行查询,并返回查询所返回的结果集中第一行的第一列。 忽略其他列或行。
ExecuteScalarAsync()异步版本的 ExecuteScalar()命令执行该命令,并返回第一个返回结果集中第一行的第一列。 将忽略所有其他列、行和结果集。 通过 CancellationToken.None 调用 ExecuteScalarAsync(CancellationToken)。 (继承自 DbCommand)
ExecuteScalarAsync(CancellationToken)ExecuteScalar() 的异步版本,该版本异步执行查询,并返回由查询返回的结果集中的第一行的第一列。 忽略其他列或行。 取消标记可用于在命令超时超过前请求放弃操作。 将通过返回的任务对象报告异常。
ExecuteXmlReader()CommandText 发送到 Connection,并生成一个 XmlReader 对象。
ExecuteXmlReaderAsync()ExecuteXmlReader() 的异步版本,可以将 CommandText 发送到 Connection,并生成 XmlReader 对象。 将通过返回的任务对象报告异常。
ExecuteXmlReaderAsync(CancellationToken)ExecuteXmlReader() 的异步版本,可以将 CommandText 发送到 Connection,并生成 XmlReader 对象。 取消标记可用于在命令超时超过前请求放弃操作。 将通过返回的任务对象报告异常。
ResetCommandTimeout()CommandTimeout 属性重置为其默认值。