小编Ste*_*hen的帖子

如何比较日期时间对象中的月和日

在我的C#程序中,我遇到了一个障碍,我有一个存储日期范围的表(列是日期范围ID(int),开始日期(DateTime)和结束日期(DateTime).我想查询表并返回只属于特定日期范围的行.我不能使用datetime.date,因为它包含年份.

例如,我想查询表并获取介于01-01和5-31之间的所有日期范围.

我已经尝试使用以下lambda来查询表,但我的结果集是空的.

List<DateRanges> tempDateRangeList = dataContext
                                     .DateRanges
                                     .Where(r=>r.BeginDate.Month <= startDate.Month 
                                               && r.EndDate.Month >= finishDate.Month)
                                     .ToList();

tempDateRangeList = tempDateRangeList.Where(r=>r.BeginDate.Day <= startDate.Day 
                                               && r.EndDate.Day >= finishDate.Day)
                                     .ToList();
Run Code Online (Sandbox Code Playgroud)

有没有人对我如何做到这一点有任何建议?

编辑:

BeginDate和EndDate的示例将是如下列表:

BeginDate 2016年1月1日,2016年5月25日,2016年11月9日

EndDates 2016年5月24日,2016年9月9日,2016年12月31日

过滤日期为:startDate = 12/8 finishDate = 12/12

预期结果:9/11开始日期结束日期12/31

c# datetime entity-framework

6
推荐指数
1
解决办法
3746
查看次数

有没有办法正确结束与QuickBooks/QBW32.exe的会话,所以它不会在后台运行?

我在许多程序上执行技术支持和一些开发,这些程序使用QuickBooks SDK来执行各种功能.最近我注意到当用户执行以下操作时:

先决条件: - QuickBooks未在桌面上打开,并且当前未运行. - 我的桌面程序未在QuickBooks集成应用程序列表中设置以自动登录.

1)打开我的一个程序.

2)执行启动与QuickBooks的连接和会话的操作.

3)QuickBooks界面返回一个错误,指出您必须打开QuickBooks并登录到公司文件才能执行此操作.

4)我的程序关闭会话和连接,然后向用户显示一些对话框,为他们提供故障排除提示.

结果:

QuickBooks本身继续作为QBW32.exe在后台运行,即使会话和连接都已关闭.

如果用户然后尝试打开QuickBooks桌面程序,则会收到错误消息,告诉他们QuickBooks已在运行.然后,他们必须在Windows中打开任务管理器并关闭正在运行的QBW32.exe,然后才能成功打开QuickBooks.

我已经使用我在下面编写的非常基本的C#程序重现了这一点.

在测试应用程序中,我使用以下步骤/方案:

先决条件:1)测试应用程序未设置为自动登录到QuickBooks.它设置为仅在用户打开QuickBooks桌面程序并且具有打开的公司文件时登录.

2)确保在下面的测试之前没有打开QuickBooks.

脚步:

1)打开测试C#应用程序

2)按下"打开连接"按钮.应通过QBXML互操作与QuickBooks的界面打开连接.

3)按"开始会话"按钮.应该使用QuickBooks启动会话.

4)假设上面的测试预先请求已经满足,您应该收到QuickBooks返回的错误消息,告诉您应用程序未设置为自动登录,您需要先打开QuickBooks才能尝试会话.

5)QBW32.exe现在应该在后台运行.

6)按下结束会话的按钮.这应该使用QuickBooks界面结束会话.无论如何,会话应该已经通过步骤3按钮中的try-catch结束.

7)按"关闭连接"按钮.这应该关闭与QuickBooks的所有连接.

8)即使会话和连接已经结束并关闭,QBW32.exe仍然在后台运行.

9)使用退出按钮关闭测试应用程序.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml;
using Interop.QBXMLRP2;

namespace Open_Connection
{

    public partial class Form1 : Form
    {

        bool sessionBegun = false;
        bool connectionOpen = false;
        RequestProcessor2 rp = null;
        string ticket;


        public Form1()
        {
            InitializeComponent();
        }

        private …
Run Code Online (Sandbox Code Playgroud)

c# session quickbooks qbxml

5
推荐指数
1
解决办法
3923
查看次数

实体框架如何从数据上下文中分离所有特定类型的对象?

当前,我正在尝试在我的datacontext.savechanges()方法之前实现代码,该方法将从数据上下文中分离特定类型的所有对象,以使它们不会插入数据库中。我知道你可以打电话dbContext.Entry(entity).State = EntityState.Detached分离单个实体,但是有没有一种方法可以从上下文分离特定类型的所有对象?

编辑:我实现了Mark C的建议并进行了编译,但是当我尝试执行代码时遇到了无效的操作异常:

实体类型DbEntityEntry不是当前上下文模型的一部分。

   foreach (System.Data.Entity.Infrastructure.DbEntityEntry dbEntityEntry in this.dataContext.ChangeTracker.Entries<Customer>())
            {
                if (dbEntityEntry != null && dbEntityEntry.State != System.Data.Entity.EntityState.Modified && dbEntityEntry.State != System.Data.Entity.EntityState.Unchanged)
                {
                    dataContext.Entry(dbEntityEntry).State = System.Data.Entity.EntityState.Detached;
                }
            }
Run Code Online (Sandbox Code Playgroud)

编辑#2:在仔细研究之后,我犯了一个错误。似乎需要在DBEntityEntry上指定实体。通过以下更改,它可以工作:

        foreach (System.Data.Entity.Infrastructure.DbEntityEntry dbEntityEntry in this.dataContext.ChangeTracker.Entries<Customer>())
        {
            if (dbEntityEntry.Entity != null && dbEntityEntry.State != System.Data.Entity.EntityState.Modified && dbEntityEntry.State != System.Data.Entity.EntityState.Unchanged)
            {
                dataContext.Entry(dbEntityEntry.Entity).State = System.Data.Entity.EntityState.Unchanged;
            }
        }
Run Code Online (Sandbox Code Playgroud)

感谢Gert建议使用EntityState.Unchanged而不是EntityState.Detached。

c# entity-framework

3
推荐指数
2
解决办法
2874
查看次数

标签 统计

c# ×3

entity-framework ×2

datetime ×1

qbxml ×1

quickbooks ×1

session ×1