1

失败了Database db = DatabaseFactory.CreateDatabase();,我不知道为什么。我使用声明的手动参数执行了存储的过程,她工作得很好。虽然,我没有收到错误或任何问题,所以我不确定出了什么问题。我在每一行的代码中插入一个中断,然后在该Database db = DatabaseFactory.CreateDatabase();行之后停止,在我告诉 IDE 继续之后,它会跳过该行并且函数结束。

作为记录,我的参考资料也很可靠。我已经从我完成的另一个项目中蚕食了这段代码,所以我可能只是错过了一些愚蠢的东西。无论如何,这是代码:

public class PullDebtor
{
    public static DataTable ClientNumber(string strClientID)
    {

        DataSet dsDebtor = new DataSet();
        dsDebtor.Tables.Add("Debtors");
        DbCommand dbCommand = null;

        try
        {

            Database db = DatabaseFactory.CreateDatabase();

            string sqlCommand = "sp_PullClientID";
            DbCommand dbCommand1 = db.GetSqlStringCommand(sqlCommand);
            dbCommand1.CommandType = CommandType.StoredProcedure;
            db.AddInParameter(dbCommand1, "@ClientID", DbType.String, strClientID);

            db.ExecuteNonQuery(dbCommand1);

            dsDebtor = db.ExecuteDataSet(dbCommand1);
        }
        catch
        {
            return dsDebtor.Tables[0];
        }
        finally
        {

        }
        return dsDebtor.Tables[0];

    }
}
}
4

2 回答 2

5

你编辑过你的.config部分吗?你需要这样的东西:

<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />

您还需要一个指向您在连接字符串部分中定义的连接字符串的配置部分:

<dataConfiguration defaultDatabase="Connection String" />
于 2012-12-21T16:46:12.763 回答
0

您可能知道为什么没有忽略异常。很少catch { ... }是一个好主意(它实际上从来都不是一个好主意,但我在给出建议时尽量避免总是/从不)。

将你的代码修改成这样,看看你是否还需要帮助:

try
{
    Database db = DatabaseFactory.CreateDatabase();

    ...
}
catch(Exception ex)
{
    // this will dump to the output window in VS when running a Debug build.
    // Release logging will require something different
    System.Diagnostics.Debug.WriteLine(ex);

    ...
}
于 2012-12-21T16:32:16.297 回答