我已经从2个不同的服务器填充了一个Datatable.我可以在我的长度> 0的地方进行调整,我想要做的是删除未击中的行.以下是我所拥有的内容摘要
DataRow[] dr = payments.dtPayments.Select(myselect);
if (dr.Length > 0)
{
for (int a = 0; a < dr.Length; a++)
{
if (thisOption == true)
dr[0].Delete();
else if (otherOption == true)
{
dr[0]["Date"] = myDataReader["date"].ToString().Trim();
dr[0]["Pay"] = payTypeName(myDataReader["ccdsrc"].ToString()
.Trim());
}
}
}
if (dr.Length == 0)
{
if (LastOption == true)
{
//DataRow should be removed
}
}
Run Code Online (Sandbox Code Playgroud)
Yon*_*ona 18
我不确定我是否完全理解你的问题,但是当你还在循环时,你似乎试图从集合中删除一个条目.(这会导致数组索引错误)
您应该在新集合中保存对要删除的每个条目的引用,然后从旧集合中删除所有新条目:
DataRow[] dr = payments.dtPayments.Select(myselect);
List<DataRow> rowsToRemove = new List<DataRow>();
for (int a = 0; a < dr.Length; a++) {
if(/* You want to delete this row */) {
rowsToRemove.Add(dr[a]);
}
}
foreach(var dr in rowsToRemove) {
payments.dtPayments.Rows.Remove(dr);
}
Run Code Online (Sandbox Code Playgroud)
如果 dr.Length 为零,则您的选择不会返回任何行。如果您想删除与您的条件不匹配的行,那么我会将其实现为不同类型的查询。也可能是我完全误解了你的问题。您能否更新您的问题以显示您的 SQL 并指出代码示例中出现问题的位置:在循环内部或在您发表评论的循环之后?
归档时间: |
|
查看次数: |
33623 次 |
最近记录: |