Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Lightswitch保存时的数据验证_C#_Visual Studio Lightswitch_Lightswitch 2012 - Fatal编程技术网

C# 使用Lightswitch保存时的数据验证

C# 使用Lightswitch保存时的数据验证,c#,visual-studio-lightswitch,lightswitch-2012,C#,Visual Studio Lightswitch,Lightswitch 2012,现在我有一个表,我正在输入spud date和release date。我想验证,当添加新行时,它在当前表中查看是否有任何其他spud日期,以确保新spud日期晚于上一个spud日期,并验证它在添加新行之前是否有发布日期。任何人都知道怎么做 if (this.ReleaseDate < SpudDate) { results.AddPropertyError("Release Date cannot be before Spud Date"); } if(this.Release

现在我有一个表,我正在输入spud date和release date。我想验证,当添加新行时,它在当前表中查看是否有任何其他spud日期,以确保新spud日期晚于上一个spud日期,并验证它在添加新行之前是否有发布日期。任何人都知道怎么做

if (this.ReleaseDate < SpudDate)
{
    results.AddPropertyError("Release Date cannot be before Spud Date");
}
if(this.ReleaseDate
我在validate函数中有这段代码,但这只是在输入当前项时。我还需要返回并查看其他记录以进行比较,正如我所说的那样

     partial void ReleaseDate_Validate(EntityValidationResultsBuilder results)
      {
     IDataServiceQueryable<tblWellRigJunction> orders = (from o in  this.DataWorkspace.RigStatusData.tblWellRigJunctions
                                                            orderby o.ReleaseDate
                                                            where WellID.Equals(this.WellID)
                                                            select o).Take(1);

  foreach (tblWellRigJunction ord in orders)
        {

            if (ord.ReleaseDate.ToString() == "")
            {
                results.AddPropertyError("Previous Release Date entered is still null");
                return;
            }

            int result = DateTime.Compare(ord.SpudDate, this.SpudDate);

            if (result > 0)
            {
                results.AddPropertyError("Previous Spud Date is greater");
                return;
            }
        } 
部分作废发布日期\u验证(EntityValidationResultsBuilder结果)
{
IDataServiceQueryable orders=(来自this.DataWorkspace.RigStatusData.tblWellRigJunctions中的o
orderby o.ReleaseDate
其中WellID.Equals(this.WellID)
选择o)。取(1);
foreach(订单中的TBLwellRigord)
{
if(ord.ReleaseDate.ToString()=“”)
{
results.AddPropertyError(“之前输入的发布日期仍然为空”);
返回;
}
int result=DateTime.Compare(ord.spudbate,this.spudbate);
如果(结果>0)
{
结果:AddPropertyError(“之前的开钻日期更大”);
返回;
}
} 

您可以创建一个简单的查询,该查询获取表中的所有记录并按启动日期对它们进行排序。如果您按降序对启动日期进行排序,则可以与
.FirstOrDefault()
进行比较

if(SpudDate
@Sirus您没有描述或显示足够多的代码,我无法告诉您将代码放在何处。如果您单击按钮输入数据,请使用
按钮执行
方法。或者如果您将这些添加到网格中,请使用
foreach
检查
屏幕名称保存
方法中的每一项。当我要保存时,我有此.partial void ReleaseDate_Validate(EntityValidationResultsBuilder结果){@Sirus好的。什么不起作用?你收到的错误是什么?好的,我试着像你说的那样创建一个查询。我试着在release_validate函数中输入这个。myspudates,但是它没有显示在intellisense上,因此我不能使用它…如果我在屏幕上使用它(代码)而且不是数据源发布功能,我可以访问查询,但我不想在屏幕上进行查询……这是我的问题,因此我需要根据welllid检查以前的发布日期,以便spud日期不早于发布日期
if (SpudDate < this.MySpudDates.FirstOrDefualt().SpudDate)
{
    results.AddPropertyError("New Spud Date cannot be before Previous Spud Date");
}