带有数据集c#asp net的数据行筛选数组
我有一个operators页面,它有两个包含数据库数据的表,一个包含现有运算符的表和一个包含现有用户的表。如果用户已经是操作员,我希望该行隐藏在表中。这是我的密码: C#:带有数据集c#asp net的数据行筛选数组,c#,asp.net,.net,arrays,dataview,C#,Asp.net,.net,Arrays,Dataview,我有一个operators页面,它有两个包含数据库数据的表,一个包含现有运算符的表和一个包含现有用户的表。如果用户已经是操作员,我希望该行隐藏在表中。这是我的密码: C#: var userDetailsList=new List(); TellusAPI.telluserdetails用户详细信息; var operators=\u administrationSystem.GetOperatorsInformation(userId)//数据集 var getUser=webSearch.D
var userDetailsList=new List();
TellusAPI.telluserdetails用户详细信息;
var operators=\u administrationSystem.GetOperatorsInformation(userId)//数据集
var getUser=webSearch.DoSearchForNameAndNumber(userId,txtSearchForOperator.Text,false,“,”,false,false,out userDetails)//大堆
if(getUser==null)
{
添加(新联系人部分(userDetails));
rptAdd.DataSource=null;
}
其他的
{
userDetailsList=getUser.Select(x=>newcontactpartial(x)).ToList();
var dv=新的数据视图(operators.Tables[0]);
foreach(userDetailsList中的var运算符)
{
如果(!userDetailsList.Contains(Operator))继续;
dv.RowFilter=“ID=”+运算符.ID;
}
rptAdd.DataSource=userDetailsList;//转发器
}
类别:
/// <summary>
/// Class for converting.
/// </summary>
public class ContactPartial
{
public long Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string CompanyName { get; set; }
public string Email { get; set; }
public ContactPartial(TellusUserDetails tud)
{
if (tud == null)
{
return;
}
Id = tud.UserID;
FirstName = tud.FirstName;
LastName = tud.LastName;
CompanyName = tud.Organisation.Description;
Email = tud.Email;
}
public ContactPartial(TellusSearchUserInfo tsi)
{
if (tsi == null)
{
return;
}
Id = tsi.ID;
FirstName = tsi.FirstName;
LastName = tsi.LastName;
CompanyName = tsi.CompanyName;
Email = tsi.Email;
}
}
//
///用于转换的类。
///
公共类联系人部分
{
公共长Id{get;set;}
公共字符串名{get;set;}
公共字符串LastName{get;set;}
公共字符串CompanyName{get;set;}
公共字符串电子邮件{get;set;}
公共联系人部分(TelluserDetails tud)
{
if(tud==null)
{
回来
}
Id=tud.UserID;
FirstName=tud.FirstName;
LastName=tud.LastName;
CompanyName=tud.organization.Description;
Email=tud.Email;
}
公共联系人部分(TellusSearchUserInfo tsi)
{
如果(tsi==null)
{
回来
}
Id=tsi.Id;
FirstName=tsi.FirstName;
LastName=tsi.LastName;
CompanyName=tsi.CompanyName;
Email=tsi.Email;
}
}
所以我现在比较这两个并过滤ID为的行,但它仍然读取所有行
foreach (var Operator in userDetailsList) ******
{
if (!userDetailsList.Contains(Operator)) continue;
dv.RowFilter = "ID = " + Operator.Id;
}
我发现命名约定有一些问题。。您应该正确地通知什么是操作员,什么是用户详细信息对象。不要把它们混在一起
foreach (var user in userDetailsList)
{
// Since dv is the one which contain operator details
if (dv.Select("ID= '" + user.Id + "'").Count > 0)
{
dv.RowFilter = "ID = " + user.Id;
}
}
您能否在代码中提供一些示例数据和预期结果,以及关于哪一行做什么和不做什么的一些解释?预期结果是,当您在数据库中搜索用户时,您希望筛选出operators表中已经包含的用户。我有应该知道的ID。@ChetanRanpariya请阅读评论。是的,您的代码不正确,我不能使用
dv。Select
,因为IntelliSense中没有为DataView
选择。您可以使用dv.Table.Select
foreach (var user in userDetailsList)
{
// Since dv is the one which contain operator details
if (dv.Select("ID= '" + user.Id + "'").Count > 0)
{
dv.RowFilter = "ID = " + user.Id;
}
}