数据库失败db = DatabaseFactory.CreateDatabase();

时间:2012-12-21 16:22:26

标签: c# asp.net sql database factory

围绕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];

    }
}
}

2 个答案:

答案 0 :(得分:4)

您是否编辑了.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" />

答案 1 :(得分: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);

    ...
}