C# 如何获取DataTable中指定列的索引

xiaoforward 2016-03-16 01:10:10
大家好:
C#中如何获取DataTable中行的索引号?
DaTable table=new DataTable();
DataColumn item=new DataColumn("Item", System.Type.GetType("System.String"));
DataColumn name=new DataColumn("Name", System.Type.GetType("System.String"));
DataColumn age=new DataColumn("Age", System.Type.GetType("System.Double"));
table.Column.Add(item);
table.Column.Add(name);
table.Column.Add(age);

现在table表中有3行数据
1 Tom 20
2 Joey 25
3 David 30
4 Mick 30
现在我获得了行 2 Joey 25,如何根据该行获取其在table表中的索引号?
目的:获取索引号idnex后通过delete/RemoveAt方法删除该行数据 table.Rows[index].delete() 或者table.Rows.RemoveAt(index)
谢谢!
...全文
1558 11 打赏 收藏 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
大鱼> 2016-03-21
  • 打赏
  • 举报
回复
引用 10 楼 xiaoforward 的回复:
[quote=引用 8 楼 qq_17486399 的回复:] int index = dataGridView1.SelectedRows.Index;这个就是选择行 如果要同时删除数据库数据,你就要先获取数据库里面的主键,然后从数据库中删除
大神,帮忙看些下面链接的问题如何设置: http://bbs.csdn.net/topics/391918403 谢谢![/quote] gridControl用的比较少。
xiaoforward 2016-03-19
  • 打赏
  • 举报
回复
引用 8 楼 qq_17486399 的回复:
int index = dataGridView1.SelectedRows.Index;这个就是选择行 如果要同时删除数据库数据,你就要先获取数据库里面的主键,然后从数据库中删除
大神,帮忙看些下面链接的问题如何设置: http://bbs.csdn.net/topics/391918403 谢谢!
xiaoforward 2016-03-19
  • 打赏
  • 举报
回复
引用 8 楼 qq_17486399 的回复:
int index = dataGridView1.SelectedRows.Index;这个就是选择行 如果要同时删除数据库数据,你就要先获取数据库里面的主键,然后从数据库中删除
非常感谢!
大鱼> 2016-03-18
  • 打赏
  • 举报
回复
int index = dataGridView1.SelectedRows.Index;这个就是选择行 如果要同时删除数据库数据,你就要先获取数据库里面的主键,然后从数据库中删除
大鱼> 2016-03-18
  • 打赏
  • 举报
回复
你是要删除DataGridView上面的数据同时删除数据库数据,还是只删除DataGridView上面的数据?
l245382052 2016-03-17
  • 打赏
  • 举报
回复
什么数据库? oracle 有个 rowid
Poopaye 2016-03-16
  • 打赏
  • 举报
回复
那你是如何获取到2 Joey 25的?获取到的数据类型是什么?
dalmeeme 2016-03-16
  • 打赏
  • 举报
回复
修改数据:table.Rows[1]["Name"] = "Mary";
dalmeeme 2016-03-16
  • 打赏
  • 举报
回复
			DataTable table = new DataTable();
			table.Columns.Add("Item", typeof(int));
			table.Columns.Add("Name");
			table.Columns.Add("Age", typeof(int));
			table.Rows.Add(1, "Tom", 20);
			table.Rows.Add(2, "Joey", 25);
			table.Rows.Add(3, "David", 30);
			var r = table.Rows.Cast<DataRow>().Where(x => x.Field<int>("Item") == 2 && x.Field<string>("Name") == "Joey" && x.Field<int>("Age") == 25);
			if (r.Any())
				r.ToList().ForEach(x => x.Delete());
xiaoforward 2016-03-16
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
循环判断下主键不就行了,简单的代码,纯手打,可能有误
for(var i=0;i<dt.Rows.Count;i++)
{
   if(dt.Rows[i].Field<int>("Id")==key)
   {
       return i;
   }
}
如果table中没有主键,而且可能数据行有重复,这样改如何解决了? 另外在请教一下,如何更新table中的数据,如果我想将2中的Name:Joey修改为Mary,Age:25修改为30 非常感谢!
  • 打赏
  • 举报
回复
循环判断下主键不就行了,简单的代码,纯手打,可能有误
for(var i=0;i<dt.Rows.Count;i++)
{
   if(dt.Rows[i].Field<int>("Id")==key)
   {
       return i;
   }
}

111,128

社区成员

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

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

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