我有一个Windows服务,它将一直运行,但只有在自上次至少24小时后才会激活.因此,我需要存储自上次执行有效载荷以来的时间和日期.
要做到这一点,我正在考虑写App.Config:
ConfigurationManager.AppSettings.Set("LastRunTime", DateTime.Now.ToString());
Run Code Online (Sandbox Code Playgroud)
但是这似乎并不存在,而是缓存,如果重新启动服务则不行.
那么为Windows服务保留值的可接受方法是什么?
我根本无法解决这个问题,我试图根据下面的条件求和TOTAL的值,这会导致ArithmeticOverflow:
var rawData = (from e in Context.TOTALS
where (e.PAN == "2600000246701" || e.PAN == "2600000246696")
select e.TOTAL).Sum();
Run Code Online (Sandbox Code Playgroud)
但是,如果我将条件分成两个单独的查询,它可以工作:
var rawData1 = (from e in Context.TOTALS
where (e.PAN == "2600000246696")
select e.TOTAL).FirstOrDefault();
var rawData2 = (from e in Context.TOTALS
where (e.PAN == "2600000246701")
select e.TOTAL).FirstOrDefault();
decimal? output = rawData1 + rawData2; //output is 696768.0186M
Run Code Online (Sandbox Code Playgroud)
该值明显符合小数,我不明白为什么会有任何缩小的转换.
我正在使用Entity Framework和Oracle后端.
我有许多任务可以通过类似(但略有不同)的类来执行,这些类都共享一组共同的功能.
我的目的是将这个功能提取到父类中,因为我不希望这个实现,我已经标记了它abstract
.
但是,所有调用类都调用单个方法 - 用于包含提取的公共功能.我不想override
使用父类方法,但除了子类中定义的内容之外,我还希望它能够执行.
我最初认为这是一个部分方法的工作,但我认为这将在某种程度上打破语义.那么对我来说最好的方法是什么?在这里体验一点隧道视野.
因为ObjectContext.SaveChanges()
在一个事务中发生,我认为最好是我的应用程序首先执行所有查询/更新,ObjectContext
然后再调用SaveChanges()
一次将数据写入数据库.
但是这样做意味着如果我创建一个对象并且后续查询ObjectContext
它会否认它存在(假装因为数据库尚未更新).我以为我可以通过一些SaveOptions解决这个问题,但它看起来并不像我能做到的那样.
我基本上希望它ObjectContext
像一个代理,我可以修改,因为我希望一次性提交.有没有办法实现这个目标?
我正在尝试创建一个方法,将nullicbles舍入到给定的小数位.理想情况下,我希望这是一个通用的,以便我可以使用双打和小数作为Math.Round()
许可.
我在下面编写的代码将无法编译,因为无法(可理解)解析该方法,因为无法知道调用哪个重载.这将如何实现?
internal static T? RoundNullable<T>(T? nullable, int decimals) where T : struct
{
Type paramType = typeof (T);
if (paramType != typeof(decimal?) && paramType != typeof(double?))
throw new ArgumentException(string.Format("Type '{0}' is not valid", typeof(T)));
return nullable.HasValue ? Math.Round(nullable.Value, decimals) : (T?)null; //Cannot resolve method 'Round(T, int)'
}
Run Code Online (Sandbox Code Playgroud) 我有两个事件处理程序连接到Windows窗体中的按钮单击,如下所示:
this.BtnCreate.Click += new System.EventHandler(new RdlcCreator().FirstHandler);
this.BtnCreate.Click += new System.EventHandler(this.BtnCreate_Click);
Run Code Online (Sandbox Code Playgroud)
两者都被正确调用.
但是可以FirstHandler()
防止BtnCreate_Click()
被执行吗?就像是:
void FirstHandler(object sender, EventArgs e)
{
if (ConditionSatisfied)
//Prevent next handler in sequence being executed
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以取消订阅该事件,但这可以通过编程方式完成(从方法中)吗?
我正在尝试做一个本质上非常简单的任务,结果是:
ORA-00928:缺少SELECT关键字
我要做的就是将结果持久化periods
到table中globalTable
。选择工作正常(我返回了行),但是一旦将其替换为“插入”,就会出现上述错误。
create global temporary table globalTable
(
ids number(11)
);
with periods as
(
select cl.id uniqueId
from inv_mpan_hh_con_lines cl
left join invoice_vat_lines vl on
cl.invoice_id = VL.INVOICE_ID
where rownum < 4
)
--//Issue occurs at insert keyword. If I comment it and uncomment select it works as expected//--
--select uniqueId
insert into globalTable
from periods;
Run Code Online (Sandbox Code Playgroud)
非常感谢任何指针。
我创建了一个powershell作业,当我使用以下命令时,我可以看到它:
PS C:\WINDOWS\system32> Get-ScheduledJob -Name KillTicker | Get-JobTrigger
Id Frequency Time DaysOfWeek Enabled
-- --------- ---- ---------- -------
1 AtStartup True
Run Code Online (Sandbox Code Playgroud)
由于这是一个启动工作,我真的不想重新开始测试它 - 如何手动启动这项工作?
我只是不明白使用String.Empty超过""的好处.除了它强烈打字更长.
所以,请问为什么我要使用它?
我不喜欢宽代码,特别是当它迫使我滚动时.所以写了这个:
If _item.SubItems(pd.perioddate).Text = "N/A" Or _item.SubItems(pd.perioddate).Text = String.Empty Then
dtpDeadlineforAP.Checked = False
End If
Run Code Online (Sandbox Code Playgroud)
是否有一种体面的方式来减轻它,使它更优雅?
.net ×7
c# ×7
oracle ×3
linq ×2
vb.net ×2
.net-4.0 ×1
asp.net ×1
generics ×1
oracle10g ×1
overloading ×1
powershell ×1
refactoring ×1
sql ×1
sql-insert ×1
toad ×1