【问题标题】:DatabaseFactory and output parameterDatabaseFactory 和输出参数
【发布时间】:2010-03-05 21:56:32
【问题描述】:

我已经开始使用 Enterprise Library 并且有以下问题:

1)如何将输出参数添加到此查询以及如何取回:

public int InsertDoc(HDocument document)
{          
    Database db = DatabaseFactory.CreateDatabase();  
    int result;
    var reader = db.ExecuteNonQuery("sp_InsertDocument", 
                document.AddedDate,document.AddedBy, document.Title))         
     .
     .
     .
}

db.AddOutParameter 需要我没有像 DbCommand 这样的参数。

2)我有一些方法可以处理数据库(我从 ADO.net 传输)存储过程, 我必须声明: Database db = DatabaseFactory.CreateDatabase();在它们中的每一个中,还是我可以重复使用它?

【问题讨论】:

    标签: asp.net enterprise-library


    【解决方案1】:

    1) - 你可以这样创建一个 DbCommand:

    DbCommand dbCommand = db.GetSqlStringCommand("sp_InsertDocument");
    

    并在执行后检索输出参数:

    db.GetParameterValue(dbCommand, "outputParameterName");
    

    这是使用 EntLib 执行带有输出参数的存储过程的一个很好的例子: http://www.devx.com/dotnet/Article/30910/0/page/4

    2) - 您可以在每个方法中使用 DatabaseFactory.CreateDatabase(),这很好。 EntLib 将根据需要管理连接。 顺便说一句,如果你在一个方法中只使用一次 db 变量,那么你可以通过使用内联临时而不是声明一个变量来稍微简化你的代码,即:

    var reader = DatabaseFactory.CreateDatabase().ExecuteNonQuery(....
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-22
      • 2012-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-06
      相关资源
      最近更新 更多