答案 0 :(得分:2)
您可以使用多种选项。
一个是输入 POST 值(在WHEN-NEW-RECORD-INSTANCE中)触发器。它会,发布到目前为止您输入的所有内容。然后,您可以从该表中编写using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Xml;
using System.Xml.Linq;
namespace ConsoleApplication1
{
class Program
{
const string URL = @"https://www.w3schools.com/xml/cd_catalog.xml";
static void Main(string[] args)
{
DataTable dt = new DataTable();
dt.Columns.Add("TITLE", typeof(string));
dt.Columns.Add("ARTIST", typeof(string));
dt.Columns.Add("COUNTRY", typeof(string));
dt.Columns.Add("COMPANY", typeof(string));
dt.Columns.Add("PRICE", typeof(decimal));
dt.Columns.Add("YEAR", typeof(int));
XDocument doc = XDocument.Load(URL);
foreach (XElement cd in doc.Descendants("CD"))
{
dt.Rows.Add(new object[] {
(string)cd.Element("TITLE"),
(string)cd.Element("ARTIST"),
(string)cd.Element("COUNTRY"),
(string)cd.Element("COMPANY"),
(decimal)cd.Element("PRICE"),
(int)cd.Element("YEAR")
});
}
string[] titles = dt.AsEnumerable().Select(x => x.Field<string>("TITLE")).ToArray();
}
}
}
WHEN-VALIDATE-ITEM
触发器,并检查此类值是否已存在。或者,如果那些(那些)列上有SELECTs
,数据库将自己完成其工作,即引发异常。
另一种选择是通过块中的所有行逐字地循环,并将第一行的值与所有其他行进行比较,然后将第二行的值与所有其他值进行比较,然后将第二行的值与所有其他值进行比较等等。
或者,您可以使用记录组(通常用于值列表)。基本上,您要检查您输入的值是否存在于记录组中。更多信息以及FMB文件,Craig's blog。
或者,您可以使用计算的商品,如enter link description here所述(FMB附件)。
正如你所看到的,有很多方法可以做到这一点;探索每一个并选择你认为最有用/最有吸引力/易于实施的那个。