没有合适的资源?快使用搜索试试~ 我知道了~
引言 我一直在寻找一种简单有效的库,它能在简化数据库相关的编程的同时提供一种异步的方法来预防死锁。 我找到的大部分库要么太繁琐,要么灵活性不足,所以我决定自己写个。 使用这个库,你可以轻松地连接到任何SQL-Server数据库,执行任何存储过程或T-SQL查询,并异步地接收查询结果。这个库采用C#开发,没有其他外部依赖。 背景 你可能需要一些事件驱动编程的背景知识,但这不是必需的。 使用 这个库由两个类组成: BLL(Business Logic Layer)提供访问MS-SQL数据库、执行命令和查询并将结果返回给调用者的方法和属性。你不
资源详情
资源评论
资源推荐
异步的异步的SQL数据库封装数据库封装
引言
我一直在寻找一种简单有效的库,它能在简化数据库相关的编程的同时提供一种异步的方法来预防死锁。
我找到的大部分库要么太繁琐,要么灵活性不足,所以我决定自己写个。
使用这个库,你可以轻松地连接到任何SQL-Server数据库,执行任何存储过程或T-SQL查询,并异步地接收查询结果。
这个库采用C#开发,没有其他外部依赖。
背景
你可能需要一些事件驱动编程的背景知识,但这不是必需的。
使用
这个库由两个类组成:
BLL(Business Logic Layer)提供访问MS-SQL数据库、执行命令和查询并将结果返回给调用者的方法和属性。你不能直接
调用这个类的对象,它只供其他类继承.
DAL(Data Access Layer)你需要自己编写执行SQL存储过程和查询的函数,并且对于不同的表你可能需要不同的DAL类。
首先,你需要像这样创建DAL类:
namespace SQLWrapper
{
public class DAL:BLL
{
public DAL(string server,string db,string user,string pass)
{
base.Start(server,db,user,pass);
}
~DAL()
{
base.Stop(eStopType.ForceStopAll);
}
///////////////////////////////////////////////////////////
//TODO:Here you can add your code here…
}
}
由于BLL类维护着处理异步查询的线程,你需要提供必要的数据来拼接连接字符串。千万别忘了调用`Stop`函数,否则析
构函数会强制调用它。
NOTE:如果需要连接其他非MS-SQL数据库,你可以通过修改BLL类中的`CreateConnectionString`函数来生成合适的连接
字符串。
为了调用存储过程,你应该在DAL中编写这种函数:
public int MyStoreProcedure(int param1,string param2)
{
//根据存储过程的返回类型创建用户数据
StoredProcedureCallbackResult userData=new StoredProcedureCallbackResult(eRequestType.Scalar);
//在此定义传入存储过程的参数,如果没有参数可以省略userData.Parameters=new
System.Data.SqlClient.SqlParameter[]{
new System.Data.SqlClient.SqlParameter("@param1",param1),
new System.Data.SqlClient.SqlParameter("@param2",param2),
};
//Execute procedure…
if(!ExecuteStoredProcedure("usp_MyStoreProcedure",userData))
throw new Exception("Execution failed");
//等待执行完成…
//等待时长为<userdata.tswaitforresult>
//执行未完成返回<timeout>
if(WaitSqlCompletes(userData)!=eWaitForSQLResult.Success)
throw new Exception("Execution failed");
//Get the result…
weixin_38731385
- 粉丝: 2
- 资源: 871
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0