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 に答える