目前我的应用程序使用log4net来记录错误,web.config为此如下:
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="c:/paypal/logs/gateway.log" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] – %message%newline" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="FileAppender" />
</root>
</log4net>
Run Code Online (Sandbox Code Playgroud)
但是,问题在于每天都会记录日志 gateway.log
有没有人知道使用log4net每天拥有不同日志文件的方法?
理想情况下,我不希望web.config每天使用计划任务手动编辑.
我在尝试找出以下问题的最佳解决方案时遇到问题.
我有一个表有一个State列,其中1是授权的,2是完成的,它们也是其他的.
我还有一个Retailer表,它有一个RetailerProcessType列,其中1是一步,2是两步.
我有以下查询:
CASE purc.State
WHEN 1 THEN '"AUTHORISED"'
WHEN 2 THEN '"AUTHORISED"'
WHEN 4 THEN '"AUTHORISED"'
ELSE '"DECLINED"'
END
AS Autorised_Decline_Status,
Run Code Online (Sandbox Code Playgroud)
但我需要做的是如下:
WHEN STATE = 2 AND RetailerProcessType = 1 THEN '"AUTHORISED"'
WHEN STATE = 1 AND RetailerProcessType = 2 THEN '"PENDING"'
WHEN STATE = 2 AND RetailerProcessType = 2 THEN '"AUTHORISED"'
ELSE '"DECLINED"'
Run Code Online (Sandbox Code Playgroud)
我能想到这样做的唯一方法是在查询周围有一个大量的IF语句,一个用于一步零售商,另一个用于两步,因为我的理解是一个IF子句不能有一个"AND".
然而,这似乎只是漫长的啰嗦; 有谁有更整洁的想法?
目前我的应用程序使用log4net来记录错误,web.config为此如下:
<log4net>
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="../../logs/gateway_%date{yyyyMMdd}.log" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] – %message%newline" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingLogFileAppenderOutput" />
</root>
</log4net>
Run Code Online (Sandbox Code Playgroud)
但是,客户端现在希望将每个错误通过电子邮件发送给他们.
最简单的方法是什么,你可以在web.config文件中做到吗?
基本上,我有DataTable如下:

我想为每行每个元素运行一个具有参数的方法
AddProductPrice(SKU, Price, PriceBracket)
Run Code Online (Sandbox Code Playgroud)
举个例子...:
如果我们取第一行数据,该方法将运行16次,每次一次Total Price X不为空.
因此,对于第一行中的第一个总价格,呼叫将是:
AddProductPrice(SKU, <Total Price 1 value>, 1)
Run Code Online (Sandbox Code Playgroud)
然后,对于第一行中的第二个总价格,呼叫将是:
AddProductPrice(SKU, <Total Price 2 value>, 2)
Run Code Online (Sandbox Code Playgroud)
请注意:对于National Selling元素,电话会是:
AddProductPrice(SKU, <National Selling value>, 16)
Run Code Online (Sandbox Code Playgroud)
是否有一种聪明的方法来循环遍历每个元素DataRow以使该过程更有效?
我有一个元素列表,但是如果列表元素的数量大于4,我想删除所有元素,但只留下列表中的前4个元素.
例:
列表<> - 1,2,3,4,5,6,7,8
新名单应为 - 1,2,3,4
我正在寻找使用List.RemoveAll()但不知道在括号中放什么
期待一些帮助......
史蒂芬
我想知道你是否可以做这样的事情是Microsoft SQL Server 2k8 R2
假设我有一个返回100行数据的查询.
他们是一种可以传递一些变量的方法,例如@lower_limit和@upper_limit.
然后我希望查询记录下限和上限之间的行
例如:
@lower_limit = 5
@upper_limt 10
Run Code Online (Sandbox Code Playgroud)
会从100条记录中返回5-10行.
目前我的程序(见下文)生成长度为8-12个字符的随机字符串(由数字组成).
public static string GenerateNewCode(int CodeLength)
{
string newCode = String.Empty;
int seed = unchecked(DateTime.Now.Ticks.GetHashCode());
Random random = new Random(seed);
// keep going until we find a unique code `
do
{
newCode = random.Next(Convert.ToInt32(Math.Pow(10, CodeLength - 1)), Convert.ToInt32(Math.Pow(10, CodeLength) - 1)).ToString("0000");
}
while (!ConsumerCode.isUnique(newCode));
// return
return newCode;
}
Run Code Online (Sandbox Code Playgroud)
然而,它们是该方法的问题,当其codeLength为10或更大时,它会导致错误,因为10 9大于int32.MaxValue.
不知道如何解决这个问题.