.net C# DataTable和DataSet对象详解(1/3)

.net c# datatable和dataset对象详解

a、对于1.6.1之前的版本,获得命令的方式可以通过requestscope的idbcommand属性,但是1.6.1版本的idbcommand属性返回的是ibatisnet.datamapper.commands.dbcommanddecorator对象,您可以注释代码验证一下。

b、网上有些文章贴的方法返回的dbcommand对象都是对于拼接sql语句而言,没有实现获取存储过程的dbcommand(有参数无参数的都要考虑)。本文在原有资料的基础上,尝试着做出改进,目前支持sql语句和存储过程。

/// <summary>
/// 获取dbcommand,主要是针对存储过程
/// </summary>
/// <param name="sqlmapper"></param>
/// <param name="statementname"></param>
/// <param name="paramobject">参数</param>
/// <param name="dictparam">参数字段</param>
/// <param name="dictparmdirection">parameterdirection字典</param>
/// <param name="cmdtype"></param>
/// <returns></returns>
protected virtual idbcommand getdbcommand(isqlmapper sqlmapper, string statementname, object paramobject, idictionary dictparam, idictionary<string, parameterdirection> dictparmdirection, commandtype cmdtype)
{
    if (cmdtype == commandtype.text)
    {
        return getdbcommand(sqlmapper, statementname, paramobject);
    }

    istatement statement = sqlmapper.getmappedstatement(statementname).statement;
    imappedstatement maps教程tatement = sqlmapper.getmappedstatement(statementname);
    isqlmapsession session = new sqlmapsession(sqlmapper);

    if (sqlmapper.localsession != null)
    {
        session = sqlmapper.localsession;
    }
    else
    {
        session = sqlmapper.openconnection();
    }

    requestscope request = statement.sql.getrequestscope(mapstatement, paramobject, session);
    mapstatement.preparedcommand.create(request, session as isqlmapsession, statement, paramobject);
    idbcommand cmd = session.createcommand(cmdtype);
    cmd.commandtext = request.idbcommand.commandtext;
    if (cmdtype != commandtype.storedprocedure || dictparam == null)
    {
        return cmd;
    }
    foreach (dictionaryentry de in dictparam) //存储过程
    {
        string key = de.key.tostring();
        idbdataparameter dbparam = cmd.createparameter();
        dbparam.parametername = key;
        dbparam.value = de.value;

        if (dictparmdirection != null && dictparmdirection.containskey(key))
        {
            dbparam.direction = dictparmdirection[key]; //parameterdirection
        }
        cmd.parameters.add(dbparam);
    }
    return cmd;
}

首页 1 2 3 末页

时间: 2024-10-13 22:00:39

.net C# DataTable和DataSet对象详解(1/3)的相关文章

&amp;#106avascript的document和window对象详解

window|对象|详解 [document对象] 该对象是window和frames对象的一个属性,是显示于窗口或框架内的一个文档. 属性 alinkColor 活动链接的颜色(ALINK) anchor 一个HTMI锚点,使用<A NAME=>标记创建(该属性本身也是一个对象) anchors array 列出文档锚点对象的数组(<A NAME=>)(该属性本身也是一个对象) bgColor 文档的背景颜色(BGCOLOR) cookie 存储于cookie.txt文件内的一段

JavaScript的document对象详解

javascript|对象|详解 1.对象属性document.title //设置文档标题等价于HTML的<title>标签document.bgColor //设置页面背景色document.fgColor //设置前景色(文本颜色)document.linkColor //未点击过的链接颜色document.alinkColor //激活链接(焦点在此链接上)的颜色document.vlinkColor //已点击过的链接颜色document.URL //设置URL属性从而在同一窗口打开

ASP内置对象详解之Application对象

application|对象|内置对象|详解 Application对象是个应用程序级的对象,用来在所有用户间共享信息,并可以在Web应用程序运行期间持久地保持数据. Application的属性: 方法如下: Application对象没有内置的属性,但是我们可以自行创建其属性. <% Application("属性名")=值 %> 其实大部分Application变量都 存放在Contents集合中,当你创建一个新的Application变量时,其实就是在Content

ASP内置对象详解之ObjectContext对象

object|对象|内置对象|详解 该对象用于控制Active Server Pages的事务处理.事务处理由Microsoft Transaction Server (MTS)管理. 事件 ObjectContext.OnTransactionAbort 由放弃的事务处理事件激发,在脚本完成处理后发生. ObjectContext.OnTransactionCommit 由成功的事务处理事件激发,在脚本完成处理后发生. 方法 ObjectContext.SetAbort 显式的放弃一次事务处理

ASP内置对象详解之Request对象

request|对象|内置对象|详解 Request对象用于接受所有从浏览器发往你的服务器的请求内的所有信息. 集合 Request.ClientCertificate(key[SubField]) 所有客户证书的信息的集合.对于Key,该集合具有如下的关键字: Subject 证书的主题.包含所有关于证书收据的信息.能和所有的子域后缀一起使用. Issuer 证书的发行人.包含所有关于证书验证的信息.除了CN外,能和所有的子域后缀一起使用. VadidFrom 证书发行的日期.使用VBScri

ASP内置对象详解之Response对象

response|对象|内置对象|详解 Response对象用于向客户端浏览器发送数据,用户可以使用该对象将服务器的数据以HTML的格式发送到用户端的浏览器,它与Request组成了一对接收.发送数据的对象,这也是实现动态的基础.下面介绍它常用的属性和方法. 1.Buffer属性 该属性用于指定页面输出时是否要用到缓冲区,默认值为False.当它为True时,直到整个Active Server Page执行结束后才会将结果输出到浏览器上.如:<%Response.Buffer=True%>&l

ASP内置对象详解之Server对象

server|对象|内置对象|详解 Server对象是ASP中一个很重要的对象,许多高级功能都是靠它来完成的.它提供了对Active Server Pages对和方法的使用,在这我主要介绍几个常用的方法. 1.MapPath方法 该方法返回指定文件的相对路径或物理路径.若Path以一个(/)或(\)开始,则MapPath方法返回路径时将Path视为完整的虚拟路径.若Path不是以斜杠开始,则MapPath方法返回同.asp文件中已有的路径相对的路径.如:test.asp文件位于C:\inetpu

ASP内置对象详解之Session对象

session|对象|内置对象|详解 Session其实指的就是访问者从到达某个特定主页到离开为止的那段时间.每一访问者都会单独获得一个Session.在Web应用程序中,当一个用户访问该应用时,Session类型的变量可以供这个用户在该Web应用的所有页面中共享数据:如果另一个用户也同时访问该Web应用,他也拥有自己的Session变量,但两个用户之间无法通过Session变量共享信息,而Application类型的变更则可以实现站点多个用户之间在所有页面中共享信息. 1.SessionID属

ASP内置对象详解精彩教程

对象|教程|内置对象|详解 使用ASP开发动态网站我们经常使用到其中的六个内置的对象,今天给大家收集了一下供大家参考! 1.ASP内置对象详解之Session对象 [2005-03-16]     2.ASP内置对象详解之Server对象 [2005-03-16]     3.ASP内置对象详解之Response对象 [2005-03-16]     4.ASP内置对象详解之Request对象 [2005-03-16]     5.ASP内置对象详解之ObjectContext对象 [2005-