如何从Microsoft.Practices.EnterpriseLibrary.TransientFaultHandl
本文关键字:EnterpriseLibrary TransientFaultHandl Practices Microsoft | 更新日期: 2023-09-27 18:00:57
嗨,我是新Azure SQL Server的新手。我正在尝试连接SQL服务器,并通过调用那里的存储过程从那里返回一些数据。我传递两个参数,如用户名和密码,然后从存储过程中获取有效用户的用户详细信息。
若要连接Azure SQL server,我正在使用Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling从应用程序进行连接,并使用此链接中提到的相同代码https://msdn.microsoft.com/en-us/library/dn961167.aspx。但在这里,它使用public Action IssueQueryCommand_action;
来执行针对连接的任何操作。在这种情况下,它不会返回任何结果。我想从上面链接中提到的ExecuteAction中获得DataReader
// [A.1] Connect, which proceeds to issue a query command.
this.connectionRetryPolicy.ExecuteAction(this.EstablishConnection_action);
有一个选项我可以使用ExecuteAction<TResult>
,如中所述https://msdn.microsoft.com/en-us/library/microsoft.practices.enterpriselibrary.transientfaulthandling.retrypolicy.executeaction%28v=pandp.60%29.aspx
但不知道如何使用RetryPolicy.ExecuteAction Method
调用以下方法
public bool IsValidUser(string UserMail, string Password)
{
using (SqlCommand sqlCommand = this.rsConnection.CreateCommand())
{
sqlCommand.CommandText = ConstantsDAL.SP_IS_VALID_USER;
sqlCommand.CommandType = System.Data.CommandType.StoredProcedure;
return Convert.ToBoolean(sqlCommand.ExecuteScalar());
}
}
你能帮我如何使用RetryPolicy.ExecuteAction方法来获取标量值或数据读取器吗。
该解决方案可以在MSDN上找到https://social.msdn.microsoft.com/Forums/en-US/ca9a2344-d09b-4c64-a88b-fbd42360b876/how-to-retun-value-from-retrypolicyexecuteaction-in?forum=ssdsgetstarted
要转发MSDN答案,请使用以下命令:
connectionRetryPolicy.ExecuteAction( ()=> { IsValidUser (parameter1,
parameter2); });