为SubSonic3.0的查询(SubSonic.Query.Select和存储过程)添加更多的执行功能_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 为SubSonic3.0的查询(SubSonic.Query.Select和存储过程)添加更多的执行功能

为SubSonic3.0的查询(SubSonic.Query.Select和存储过程)添加更多的执行功能

 2013/8/1 12:09:20  AllEmpty  博客园  我要评论(0)
  • 摘要:在使用SubSonic3.0的查询功能时,会发现想通过执行返回我们想要的数据,切没有相关的功能,比如说:SubSonic.Query.Select,在使用查询时没有返回DataSet或DataTable等功能,而执行存储过程时也是一样,也缺少了返回首行首列值等功能,很不方便,所以又打开看了一下插件的源码,发现其实这些功能的执行接口都存在了,而是这几个执行的类没有将他们实现出来,所以就手动加了一下。打开插件中的SubSonic.Query文件夹中的SqlQuery.cs文件
  • 标签:功能 执行 过程 存储过程

  在使用SubSonic3.0的查询功能时,会发现想通过执行返回我们想要的数据,切没有相关的功能,比如说:SubSonic.Query.Select,在使用查询时没有返回DataSet或DataTable等功能,而执行存储过程时也是一样,也缺少了返回首行首列值等功能,很不方便,所以又打开看了一下插件的源码,发现其实这些功能的执行接口都存在了,而是这几个执行的类没有将他们实现出来,所以就手动加了一下。

  打开插件中的SubSonic.Query文件夹中的SqlQuery.cs文件,找到ExecuteScalar()函数,在这个函数下面加上下面代码:

class="brush:csharp;gutter:false;">         /// <summary>
        /// 执行查询,返回DataTable
        /// </summary>
        /// <returns></returns>
        public virtual DataTable ExecuteDataTable()
        {
            DataTable result;
            try
            {
                result = _provider.ExecuteDataSet(GetCommand()).Tables[0];
            }
            catch (Exception x)
            {
                InvalidOperationException ex = GenerateException(x);
                throw ex;
            }
            return result;
        }

 因为Select类是继承SqlQuery类,所以在SqlQuery类中实现了这个功能,那么Select类就自然也有这个功能了

具体请看截图:

  调用例子

  

 

 

 

  打开插件中的SubSonic.Schema文件夹中的StoredProcedure.cs文件,找到Execute()函数,在这个函数下面加上下面代码:

/// <summary>
/// 执行存储过程,返回首行首列值
/// </summary>
public object ExecuteScalar() {
	return Provider.ExecuteScalar(Command);
}

/// <summary>
/// 执行存储过程,返回指定的(泛)类型
/// </summary>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
public T ExecuteSingle<T>() where T : new()
{
	return Provider.ExecuteSingle<T>(Command);
}

 具体请看截图:

  

 

  调用例子:

  

 

  添加完以上代码后,将SubSonic3.0插件源码重新生成一下就可以正常使用了。

 

  本文章为原创内容,转载请保留下面信息。

  发表本编内容,只要主为了和大家共同学习共同进步,有兴趣的朋友可以加加Q群:SubSonic3.0学习群(327360708)或Email给我(1654937#qq.com),大家一起探讨,由于本人工作很繁忙,如果疑问请先留言,回复不及时也请谅解。

  想了解更多SubSonic3.0的相关问题,请观注博客:http://www.cnblogs.com/EmptyFS/

 

发表评论
用户名: 匿名