用DATASET删除记录的问题。。。

aaron_lly 2005-01-30 04:05:06
mydataset.Tables("user").Rows(3).Delete()

这个是删除数组中第四条的记录,,可是我想删除id=8的记录应该怎么写啊?(因为id是自动编号的,而且如果删除了一些记录后,id号的8就不是数组中的第八条了,,,
id name
1 aa
2 ss
6 dd
7 vv
8 ee
这里的id=8实际是数组中的4,,

我在一篇文章里看到如下的代码
mydatarow = mydatatable.Rows.Find("993-21-3427")
mydatarow.Delete()

但是我在Find后加上了id的数值却不可以阿。请问这个find应该怎么用阿?
...全文
215 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
aaron_lly 2005-01-30
  • 打赏
  • 举报
回复
up!
aaron_lly 2005-01-30
  • 打赏
  • 举报
回复
??什么意思啊???

还是不能解决根据id删除记录阿,,

难道让我用SQL先筛选出所要删除的记录,然后再用DATASET进行删除??
机器人 2005-01-30
  • 打赏
  • 举报
回复
在使用 Delete 方法后,RowState 变成“已删除”。在您调用 AcceptChanges 之前,它一直保持“已删除”。所以只有调用AcceptChanges之后才真正删除,这时datatable的rows数目才减少。
aaron_lly 2005-01-30
  • 打赏
  • 举报
回复
up!
aaron_lly 2005-01-30
  • 打赏
  • 举报
回复
mydataset.Tables("user").Rows(3).Delete()


如果用这个代码,,修改Rows(3)括号中的内容,能不能做到删除id=xxx的记录呢?

就好像mydataset.Tables("user").Rows(id=8).Delete()
yyne 2005-01-30
  • 打赏
  • 举报
回复
可以使用 DataView 的 Find 方法来查找包含特定值的行索引。可以传递单个值或数组值给 Find 方法。要传递单个值给 Find 方法,使用如下语句即可:

  intItemIndex = MyDataView.Find("Smith")

如果找到了 "Smith" ,包含该名称的行索引就被赋值给 intItemIndex 。

要传递多个值给 Find 方法,使用如下语句:

  Dim arrValues(2) As Object
  arrValues(0) = "Smith"
  arrValues(1) = "Robert"
  intItemIndex = dvwDataView.Find(" arrValues )

如果找到了 "Robert Smith" , Find方法就返回该行的索引。否则,返回 -1 ,表示没有找到匹配的行。

如果找到多个匹配的行,只返回其中一个匹配行的索引。

Find 方法要求 DataTable 中的行以传递给该方法的参数相同的顺序排序。比如,如果要查找某个姓的作者,这个数据表就必须以作者的姓来排序。

给个例子代码:


<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<%
DataSet dstAuthors;
SqlConnection conPubs;
SqlDataAdapter dadAuthors;
DataView dvwAuthors;
Object[] arrValues = new Object[2];

// Grab Authors Table
dstAuthors = new DataSet();
conPubs = new SqlConnection( @"Server=localhost;Integrated Security=SSPI;Database=Pubs" );
dadAuthors = new SqlDataAdapter( "Select * From Authors", conPubs );
dadAuthors.Fill( dstAuthors, "Authors" );

// Create DataView
dvwAuthors = dstAuthors.Tables[ "Authors" ].DefaultView;
dvwAuthors.Sort = "au_lname, au_fname";

// Find Ann Dull
arrValues[0] = "Dull";
arrValues[1] = "Ann";
int intRowIndex = System.Convert.ToInt32(dvwAuthors.Find (arrValues) );


// Display Phone Number
if ( intRowIndex != -1 )
{
Response.Write( dvwAuthors[ intRowIndex ]["Phone"]);
}
else
{
Response.Write( "Can't find Ann Dull :)" );
}
%>



liulxmooo 2005-01-30
  • 打赏
  • 举报
回复
up

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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