在知道DataTable某一列数据的情况下,如何得到这个数据的行索引?

lanruoshui 2009-07-15 04:02:46
除了遍历去判断,有没有更好的方法?
...全文
602 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanruoshui 2009-07-18
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 zhoufoxcn 的回复:]
引用楼主 lanruoshui 的回复:
除了遍历去判断,有没有更好的方法?

好像DataTable这个类确实没有提供其它的方法。
[/Quote]
真没有了。。?
周公 2009-07-18
  • 打赏
  • 举报
回复
[Quote=引用楼主 lanruoshui 的回复:]
除了遍历去判断,有没有更好的方法?
[/Quote]
好像DataTable这个类确实没有提供其它的方法。
风之影子 2009-07-18
  • 打赏
  • 举报
回复
给内存表加自动增长列

lanruoshui 2009-07-18
  • 打赏
  • 举报
回复
大虾们没更好的办法了么
lanruoshui 2009-07-18
  • 打赏
  • 举报
回复
好象确实没好更好的办法
mbh0210 2009-07-18
  • 打赏
  • 举报
回复
dt.Rows.IndexOf(Currenctrow);
lanruoshui 2009-07-18
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 ourola 的回复:]
C# codeDataRow[] rows= dtStation.Select("Name='刘玲'");if rows.Length>0
{foreach(DataRow rowin rows)
{//对Row进行操作 }
}()
[/Quote]
刚才这样试过的结果是rows.Length=0,
也就不能执行
foreach(DataRow row in rows)
{
//对Row进行操作
}
说明这个方法不能查到索引
正常按我之前的算法,这个名字是可以得到索引的
ourola 2009-07-18
  • 打赏
  • 举报
回复
DataRow[] rows = dtStation.Select("Name='刘玲'");
if rows.Length > 0
{
foreach(DataRow row in rows)
{
//对Row进行操作
}
}()
lanruoshui 2009-07-18
  • 打赏
  • 举报
回复

string str = "刘玲";
DataRow[] foundRows = dtStation.Select("Name='str'");
for (int i = 0; i < foundRows.Length; i++)
{
string strtest= foundRows[i][0].ToString();
}

结果是foundRows.Length=0,不知道是不是这样取不正取,没有得到相应的行索引。
lanruoshui 2009-07-18
  • 打赏
  • 举报
回复

dtStation.Select("Name='刘玲'")

返回的DataRow[]怎么用啊??
IHandler 2009-07-18
  • 打赏
  • 举报
回复
dt.Select("列名='值'"),试试这样能否通过DataView找到DataTable中对应的行索引,没环境,没试过
bwangel 2009-07-18
  • 打赏
  • 举报
回复
如果这种操作需要经常进行,建议重新设计数据结构.
lanruoshui 2009-07-16
  • 打赏
  • 举报
回复
UP
jieguo 2009-07-15
  • 打赏
  • 举报
回复
调用示例:
string expression;
string sortOrder;
expression = "id > 5";
// Sort descending by column named CompanyName.
sortOrder = "name DESC";
// Use the Select method to find all rows matching the filter.
DataRow[] foundRows =
customerTable.Select(expression, sortOrder,
DataViewRowState.Added);
jieguo 2009-07-15
  • 打赏
  • 举报
回复
用用这个试试



C#
public DataRow[] Select (
string filterExpression,
string sort,
DataViewRowState recordStates
)

参数
filterExpression
要用来筛选行的条件。

sort
一个字符串,它指定列和排序方向。

recordStates
DataViewRowState 值之一。

lanruoshui 2009-07-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 camelials 的回复:]
数据本身和索引 是两个独立的东西吧?你说的遍历应该只是遍历表本身的信息吧?而非数据本身。
[/Quote]

我说的遍历就是指循环判断DataTable指定列的数据是否与给定值相同,如果相同,取出该行的索引

for (int i = 0; i < dt.Rows.Count; i++)
{
if (dt.Rows[i][1].ToString().Equals(str))
{
index= i;
break;
}
}

如上面的代码,假设指定列1,index就是我要找的索引,我想知道除了这个方法有没有更好更快的办法?
世宝宝 2009-07-15
  • 打赏
  • 举报
回复
使用BindingSource试试,它相当于给DataTable加了层外套,有当前行指示比如Current
BossFriday 2009-07-15
  • 打赏
  • 举报
回复
数据本身和索引 是两个独立的东西吧?你说的遍历应该只是遍历表本身的信息吧?而非数据本身。

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧