C# 使用在foreach中创建的变量
我试图从XML文件和DB表列中提取重复项 这是我目前的代码C# 使用在foreach中创建的变量,c#,C#,我试图从XML文件和DB表列中提取重复项 这是我目前的代码 using (AH_ODS_DBEntities db = new AH_ODS_DBEntities()) { //XML CustomerRefNbr string[] allFiles = Directory.GetFiles(@"C:\xml\"); foreach (var @CRN in allFiles) { XElement xEle = XElem
using (AH_ODS_DBEntities db = new AH_ODS_DBEntities())
{
//XML CustomerRefNbr
string[] allFiles = Directory.GetFiles(@"C:\xml\");
foreach (var @CRN in allFiles)
{
XElement xEle = XElement.Load(@CRN);
IEnumerable<XElement> invoices = xEle.Elements();
foreach (XElement pEle in invoices)
{
string c = pEle.Element("CustomerRef").Value;
}
//DB CustomerRefNbr
IEnumerable<string> rs = db.Sales.AsQueryable().Select(crn => crn.CustomerRefNbr);
foreach (string invoice in rs)
{
string i = invoice;
}
}
}
使用(AH_ODS_DBEntities db=new AH_ODS_DBEntities())
{
//XML CustomerRefNbr
字符串[]allFiles=Directory.GetFiles(@“C:\xml\”);
foreach(所有文件中的var@CRN)
{
XElement xEle=XElement.Load(@CRN);
IEnumerable发票=xEle.Elements();
foreach(发票中的XElement pEle)
{
字符串c=pEle.Element(“CustomerRef”).Value;
}
//DB CustomerRefNbr
IEnumerable rs=db.Sales.AsQueryable().Select(crn=>crn.CustomerRefNbr);
foreach(以卢比为单位的字符串发票)
{
字符串i=发票;
}
}
}
我试图实现的是获取字符串c和I,比较它们是否匹配,并将它们放入列表中
var duplicateCRN= db.Sales.SqlQuery("SELECT * FROM Sales WHERE " + i + "==" + c)
.ToList<Sale>();
var duplicateCRN=db.Sales.SqlQuery(“从Sales中选择*,其中“+i+”==”+c)
.ToList();
但不确定我是否做对了。您应该在foreach之前初始化字符串I和c。这样,您就可以在foreach中填充它,并在以后的代码中使用它。所以像这样:
using (AH_ODS_DBEntities db = new AH_ODS_DBEntities())
{
//XML CustomerRefNbr
string[] allFiles = Directory.GetFiles(@"C:\xml\");
string i = "";
string c = "";
foreach (var @CRN in allFiles)
{
XElement xEle = XElement.Load(@CRN);
IEnumerable<XElement> invoices = xEle.Elements();
foreach (XElement pEle in invoices)
{
c = pEle.Element("CustomerRef").Value;
}
//DB CustomerRefNbr
IEnumerable<string> rs = db.Sales.AsQueryable().Select(crn => crn.CustomerRefNbr);
foreach (string invoice in rs)
{
i = invoice;
}
}
}
使用(AH_ODS_DBEntities db=new AH_ODS_DBEntities())
{
//XML CustomerRefNbr
字符串[]allFiles=Directory.GetFiles(@“C:\xml\”);
字符串i=“”;
字符串c=“”;
foreach(所有文件中的var@CRN)
{
XElement xEle=XElement.Load(@CRN);
IEnumerable发票=xEle.Elements();
foreach(发票中的XElement pEle)
{
c=贝利元素(“CustomerRef”)值;
}
//DB CustomerRefNbr
IEnumerable rs=db.Sales.AsQueryable().Select(crn=>crn.CustomerRefNbr);
foreach(以卢比为单位的字符串发票)
{
i=发票;
}
}
}
您应该在foreach之前初始化字符串i和c。这样,您就可以在foreach中填充它,并在以后的代码中使用它。所以像这样:
using (AH_ODS_DBEntities db = new AH_ODS_DBEntities())
{
//XML CustomerRefNbr
string[] allFiles = Directory.GetFiles(@"C:\xml\");
string i = "";
string c = "";
foreach (var @CRN in allFiles)
{
XElement xEle = XElement.Load(@CRN);
IEnumerable<XElement> invoices = xEle.Elements();
foreach (XElement pEle in invoices)
{
c = pEle.Element("CustomerRef").Value;
}
//DB CustomerRefNbr
IEnumerable<string> rs = db.Sales.AsQueryable().Select(crn => crn.CustomerRefNbr);
foreach (string invoice in rs)
{
i = invoice;
}
}
}
使用(AH_ODS_DBEntities db=new AH_ODS_DBEntities())
{
//XML CustomerRefNbr
字符串[]allFiles=Directory.GetFiles(@“C:\xml\”);
字符串i=“”;
字符串c=“”;
foreach(所有文件中的var@CRN)
{
XElement xEle=XElement.Load(@CRN);
IEnumerable发票=xEle.Elements();
foreach(发票中的XElement pEle)
{
c=贝利元素(“CustomerRef”)值;
}
//DB CustomerRefNbr
IEnumerable rs=db.Sales.AsQueryable().Select(crn=>crn.CustomerRefNbr);
foreach(以卢比为单位的字符串发票)
{
i=发票;
}
}
}
您应该在foreach之前初始化字符串i和c。这样,您就可以在foreach中填充它,并在以后的代码中使用它。所以像这样:
using (AH_ODS_DBEntities db = new AH_ODS_DBEntities())
{
//XML CustomerRefNbr
string[] allFiles = Directory.GetFiles(@"C:\xml\");
string i = "";
string c = "";
foreach (var @CRN in allFiles)
{
XElement xEle = XElement.Load(@CRN);
IEnumerable<XElement> invoices = xEle.Elements();
foreach (XElement pEle in invoices)
{
c = pEle.Element("CustomerRef").Value;
}
//DB CustomerRefNbr
IEnumerable<string> rs = db.Sales.AsQueryable().Select(crn => crn.CustomerRefNbr);
foreach (string invoice in rs)
{
i = invoice;
}
}
}
使用(AH_ODS_DBEntities db=new AH_ODS_DBEntities())
{
//XML CustomerRefNbr
字符串[]allFiles=Directory.GetFiles(@“C:\xml\”);
字符串i=“”;
字符串c=“”;
foreach(所有文件中的var@CRN)
{
XElement xEle=XElement.Load(@CRN);
IEnumerable发票=xEle.Elements();
foreach(发票中的XElement pEle)
{
c=贝利元素(“CustomerRef”)值;
}
//DB CustomerRefNbr
IEnumerable rs=db.Sales.AsQueryable().Select(crn=>crn.CustomerRefNbr);
foreach(以卢比为单位的字符串发票)
{
i=发票;
}
}
}
您应该在foreach之前初始化字符串i和c。这样,您就可以在foreach中填充它,并在以后的代码中使用它。所以像这样:
using (AH_ODS_DBEntities db = new AH_ODS_DBEntities())
{
//XML CustomerRefNbr
string[] allFiles = Directory.GetFiles(@"C:\xml\");
string i = "";
string c = "";
foreach (var @CRN in allFiles)
{
XElement xEle = XElement.Load(@CRN);
IEnumerable<XElement> invoices = xEle.Elements();
foreach (XElement pEle in invoices)
{
c = pEle.Element("CustomerRef").Value;
}
//DB CustomerRefNbr
IEnumerable<string> rs = db.Sales.AsQueryable().Select(crn => crn.CustomerRefNbr);
foreach (string invoice in rs)
{
i = invoice;
}
}
}
使用(AH_ODS_DBEntities db=new AH_ODS_DBEntities())
{
//XML CustomerRefNbr
字符串[]allFiles=Directory.GetFiles(@“C:\xml\”);
字符串i=“”;
字符串c=“”;
foreach(所有文件中的var@CRN)
{
XElement xEle=XElement.Load(@CRN);
IEnumerable发票=xEle.Elements();
foreach(发票中的XElement pEle)
{
c=贝利元素(“CustomerRef”)值;
}
//DB CustomerRefNbr
IEnumerable rs=db.Sales.AsQueryable().Select(crn=>crn.CustomerRefNbr);
foreach(以卢比为单位的字符串发票)
{
i=发票;
}
}
}
如果我理解正确,您想检查xml中的任何元素是否包含与数据库中的任何条目相同的值,对吗
您现在在foreach中所做的并没有做任何事情,因为您只是覆盖了这些值,但没有对其执行任何操作
检查此代码:
using (AH_ODS_DBEntities db = new AH_ODS_DBEntities())
{
//XML CustomerRefNbr
string[] allFiles = Directory.GetFiles(@"C:\xml\");
foreach (var @CRN in allFiles)
{
XElement xEle = XElement.Load(@CRN);
IEnumerable<XElement> invoices = xEle.Elements();
foreach (XElement pEle in invoices)
{
string c = pEle.Element("CustomerRef").Value;
//DB CustomerRefNbr
IEnumerable<string> rs = db.Sales.AsQueryable().Select(crn => crn.CustomerRefNbr);
foreach (string invoice in rs)
{
if (invoice == c);
//This is a match
}
}
}
}
使用(AH_ODS_DBEntities db=new AH_ODS_DBEntities())
{
//XML CustomerRefNbr
字符串[]allFiles=Directory.GetFiles(@“C:\xml\”);
foreach(所有文件中的var@CRN)
{
XElement xEle=XElement.Load(@CRN);
IEnumerable发票=xEle.Elements();
foreach(发票中的XElement pEle)
{
字符串c=pEle.Element(“CustomerRef”).Value;
//DB CustomerRefNbr
IEnumerable rs=db.Sales.AsQueryable().Select(crn=>crn.CustomerRefNbr);
foreach(以卢比为单位的字符串发票)
{
如果(发票==c);
//这是一场比赛
}
}
}
}
你可以这样做