删除DATASET中行数据技巧

原创 2004年08月02日 17:02:00
删除 DataSet 数据时的问题:
None.gif―――――――――――――――――――――――――――――――――――――――――――――――
None.gif
using System;
None.gif
using System.Collections;
None.gif
using System.ComponentModel;
None.gif
using System.Data;
None.gif
using System.Drawing;
None.gif
using System.Web;
None.gif
using System.Web.SessionState;
None.gif
using System.Web.UI;
None.gif
using System.Web.UI.WebControls;
None.gif
using System.Web.UI.HtmlControls;
None.gif
using System.Data.SqlClient;
None.gif
None.gif
namespace TestDelDataset
ExpandedBlockStart.gif
{
ExpandedSubBlockStart.gif 
///?
InBlock.gif????
///?WebForm1?的摘要说明。
ExpandedSubBlockEnd.gif????
///?

InBlock.gif public class?WebForm1 : System.Web.UI.Page
ExpandedSubBlockStart.gif 
{
InBlock.gif 
protected System.Web.UI.WebControls.DataGrid DataGrid1;
InBlock.gif 
protected?SqlDataAdapter?adapter;
InBlock.gif 
protected?SqlConnection?myConnection;
InBlock.gif 
protected?DataSet?ds;
InBlock.gif 
protected?DataTable?dt;
InBlock.gif 
protected?DataRow?dr;
InBlock.gif
InBlock.gif 
private?void?Page_Load(object?sender,?System.EventArgs?e)
ExpandedSubBlockStart.gif 
{
InBlock.gif 
?在此处放置用户代码以初始化页面
InBlock.gif
 if(!Page.IsPostBack)
ExpandedSubBlockStart.gif 
{
InBlock.gif BindData();
InBlock.gif 
ExpandedSubBlockEnd.gif }

ExpandedSubBlockEnd.gif }

InBlock.gif 
InBlock.gif 
private void BindData()
ExpandedSubBlockStart.gif 
{
InBlock.gif myConnection
= new SqlConnection("server=localhost;database=Northwind;Trusted_Connection=yes;user id=sa;password=;");
InBlock.gif adapter
=new SqlDataAdapter("select * from Categories",myConnection);
InBlock.gif  ds
=new DataSet();
InBlock.gif adapter.Fill(ds,
"Categories");
InBlock.gif dt
=ds.Tables["Categories"];
InBlock.gif 
this.DataGrid1.DataSource=dt.DefaultView;
InBlock.gif 
this.DataGrid1.DataBind();
InBlock.gif 
InBlock.gif ViewState[
"dt"]=dt;
InBlock.gif 
ViewState["pk"]=dt.PrimaryKey;
ExpandedSubBlockEnd.gif
 }

InBlock.gif
ContractedSubBlock.gif 
Web?窗体设计器生成的代码
InBlock.gif
InBlock.gif 
public?void?DataGrid1_SelectedIndexChanged(object?sender,?System.EventArgs?e)
ExpandedSubBlockStart.gif 
{
InBlock.gif 
ExpandedSubBlockEnd.gif }

InBlock.gif 
public void DataGrid1_Delete(object sender,DataGridCommandEventArgs e)
ExpandedSubBlockStart.gif 
{
InBlock.gif 
try
ExpandedSubBlockStart.gif 
{
InBlock.gif DataTable?dt
=(DataTable)ViewState["dt"];
ExpandedSubBlockStart.gif dt.PrimaryKey
=new DataColumn[]{dt.Columns["CategoryID"]};
InBlock.gif 
InBlock.gif 
int key=(int)this.DataGrid1.DataKeys[(int)e.Item.ItemIndex];
InBlock.gif Response.Write(
"Click "+key.ToString()+"?Column");
InBlock.gif
//
InBlock.gif
 dr=dt.Rows.Find(key);
InBlock.gif 
if(dr.Equals(""))
InBlock.gif Response.Write(
"null");
InBlock.gif 
else
InBlock.gif Response.Write(
"no?null");
InBlock.gif dt.Rows.Remove(dr);
InBlock.gif 
dr.Delete();
InBlock.gif 
dr.AcceptChanges();
InBlock.gif
 DataGrid1.DataSource=dt.DefaultView;
InBlock.gif DataGrid1.DataBind();
ExpandedSubBlockEnd.gif }

ExpandedSubBlockStart.gif 
catch(System.NullReferenceException pp){Response.Write(pp.Message);}
ExpandedSubBlockStart.gif 
catch(System.ArgumentException ae){Response.Write(ae.Message);}
ExpandedSubBlockEnd.gif }

ExpandedSubBlockEnd.gif }

ExpandedBlockEnd.gif}

None.gif――――――――――――――――――――――――――――――――――――――――――――
None.gif
由于删除一行的时候没保存状态,所以当再删除一行或后退的时候,原来删除的那一行就又会出现,解决这种问题的方案就是在初始的时候把dataset中的datatable放到VIEWSTATE里,可以起到保存状态的作用,然后再在删除事件里把datatable从VIEWSTATE里取出来进来操作,再调用Remove()即可删除。

winForm中DataSet实现数据查询、保存和删除

[csharp] view plaincopy     public partial class Form4 : Form       {           Sql...
  • z371508242
  • z371508242
  • 2014-03-28 08:51:38
  • 491

.NET学习(三)用DataSet缓存数据库中的数据

DataSet相当于一个数据缓存容器。 DataAdapter用于将数据从数据库中提取出来,存放到DataSet对象中。大致有以下五个步骤: 1.实例化一个DataAdapter对象。 (注意:...
  • qq_16912257
  • qq_16912257
  • 2015-11-21 13:09:53
  • 678

asp.net中用VB.net读取DataGrid中行的实现

    对于asp,net的初学者而言,在同一个页面中获取DataGrid中某一行的数据可能比较难,不知从何实现,特别是提取出用户当前所点击行的记录,呵呵,就我本人也是初学者,有些地方解释不清楚,还请...
  • wjbych
  • wjbych
  • 2006-06-04 20:42:00
  • 1221

删除DATASET中行数据技巧

删除 DataSet 数据时的问题:―――――――――――――――――――――――――――――――――――――――――――――――using System;using System.Collectio...
  • jabby12
  • jabby12
  • 2004-08-02 17:02:00
  • 2381

怎样将<em>DataSet中</em>修改(增加_<em>删除</em>_修改)过的记录更新进<em>数据</em>库中

怎样将<em>DataSet中</em>修改(增加_<em>删除</em>_修改)过的记录更新进<em>数据</em>库中怎样将<em>DataSet中</em>修改(增加_<em>删除</em>_修改)过的记录更新进<em>数据</em>库中 综合评分:4 收藏评论(14)举报 ...
  • 2018年04月17日 00:00

删除DATASET中行数据技巧

删除 DataSet 数据时的问题:―――――――――――――――――――――――――――――――――――――――――――――――using System;using System.Collectio...
  • xiaoxiaohai123
  • xiaoxiaohai123
  • 2007-05-23 09:33:00
  • 549

C# DataSet 删除不需要的列

  //移除不需要的列         ds.Tables[0].Columns.Remove("Column1");         ds.Tables[0].Columns.Remove("C...
  • weizhang_son_ding
  • weizhang_son_ding
  • 2010-06-25 16:51:00
  • 4724

使用CommandBuilder对象时,DataSet中的数据删除

使用CommandBuilder对象时,在DataSet中删除数据时有两种方法,Rows.Remove()和DataRow.Delete() Rows.Remove()方法删除时,RowsState...
  • tianyinlove
  • tianyinlove
  • 2012-02-22 15:21:08
  • 322

DataSet 中的删除行问题

    这两天在使用DataSet时碰到了个问题,即当在DataSet中删除行后,只在DataSet中删除了,但调用DataAdapter.UpDate(),方法后,并没有更新到数据库,而插入数据,更...
  • SLTP
  • SLTP
  • 2005-07-27 13:39:00
  • 1848

DataGridView控件之多行数据的选中与删除功能

DataGridView控件之多行数据的选中与删除步骤: (1)创建Windows窗体程序,并在窗体上防止一个dataGridView控件名字为dataGridView1,两个按钮控件(ADD和Del...
  • zhanghui962623727
  • zhanghui962623727
  • 2016-06-07 10:05:43
  • 6759
收藏助手
不良信息举报
您举报文章:删除DATASET中行数据技巧
举报原因:
原因补充:

(最多只允许输入30个字)