简化数据库交互的SQLMagic工具

在现代软件开发中,数据库交互是不可或缺的一部分。无论是加载数据块、转换数据还是将其推送到不同的地方,或是应用过滤器并保存更改,几乎所有的业务开发者都会在某个时刻执行这些步骤的某种变体。然而,实现这些步骤的方式似乎过于多样化。例如,.NET提供了功能强大的System.Data.SqlClient命名空间来处理SQL Server交互的需求,但它的底层实现对来说过于复杂,需要大量的设置才能开始工作。

为了简化这一过程,开发了一个名为SQLMagic的工具。SQLMagic的诞生初衷是为了让能够专注于编写查询,一次编写,然后在应用程序中重复使用,而不需要花费太多时间设置应用程序环境以与SQL Server交互。

SQLMagic是什么?

SQLMagic最初是一个小型项目,旨在简化C#代码,使能够专注于编写查询,然后将它们放入应用程序中执行,而无需进行复杂的设置。SQLMagic的目标是简单明了,它应该能够处理需要的任何事情,而不会抛出SQL Server通常会返回的异常之外的任何问题。

如何使用SQLMagic

SQLMagic的使用非常简单,这正是它的设计初衷。以下是一些基本用法示例:

var nTimeout = 30; // 设置超时时间为30秒 var bLog = true; // 开启日志记录 var oSql = new Sql("connectionString", nTimeout, bLog); // 创建SQLMagic实例 SqlResultWithDataSet oResult = oSql.Open("SELECT * FROM tbl"); // 执行查询并返回DataSet

此外,SQLMagic还支持使用参数的查询,这有助于提高查询的安全性和灵活性:

oResult = oSql.Open("SELECT * FROM tbl WHERE tbl_id = @id", CommandType.Text, new SqlParameter("id", 100));

SQLMagic还支持执行存储过程和获取返回值:

var datetime = oSql.Execute("SELECT GETDATE()"); var intBack = oSql.Execute("SELECT 1"); var intBackAgain = oSql.Execute("sp_GiveNumber", CommandType.StoredProcedure);

高级功能

SQLMagic不仅支持基本的数据库操作,还提供了一些高级功能,如异步支持和事务管理。以下是一些高级用法示例:

var oResult = await oSql.OpenAsync("SELECT * FROM aVeryLargeTable"); var nValue = await oSql.ExecuteAsync("SELECT bigNumberComputationThatResultsInInteger"); var nProcedure = await oSql.ExecuteAsync("sp_LongRunningProcedure", CommandType.StoredProcedure);

SQLMagic还支持手动创建连接和使用事务:

SqlTransaction oTransaction = oSql.BeginTransaction(); oSql.Open(oStatement, oTransaction.Connection, false, oTransaction); oSql.EndTransaction(oTransaction, true); // true表示提交事务,false表示回滚事务

SQLMagic仍在不断进化中,计划为其添加更多功能,如Fluent-like接口和观察者类,以记录命令和连接活动。此外,SQLMagic可能会进行一些破坏性更改,以整合新功能或标准化命名空间。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485