删除DATASET中行数据技巧

原创 2004年08月02日 17:02:00
删除 DataSet 数据时的问题:
―――――――――――――――――――――――――――――――――――――――――――――――
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

namespace TestDelDataset
{
 
///?
????
///?WebForm1?的摘要说明。
????
///?

 public class?WebForm1 : System.Web.UI.Page
 
{
 
protected System.Web.UI.WebControls.DataGrid DataGrid1;
 
protected?SqlDataAdapter?adapter;
 
protected?SqlConnection?myConnection;
 
protected?DataSet?ds;
 
protected?DataTable?dt;
 
protected?DataRow?dr;

 
private?void?Page_Load(object?sender,?System.EventArgs?e)
 
{
 
?在此处放置用户代码以初始化页面
 if(!Page.IsPostBack)
 
{
 BindData();
 
 }

 }

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


 
Web?窗体设计器生成的代码

 
public?void?DataGrid1_SelectedIndexChanged(object?sender,?System.EventArgs?e)
 
{
 
 }

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

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

 }

}

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

Spark的Dataset操作(四)-其他单表操作

Spark的Dataset操作(四)-其他单表操作还有些杂七杂八的小用法没有提到,比如添加列,删除列,null值处理之类的,就在这里大概列一下吧。...
  • coding_hello
  • coding_hello
  • 2017年07月16日 21:10
  • 1816

C#中删除DataTable中的行的方法

1、在C#中,如果要删除DataTable中的某一行,大约有以下几种办法: •使用DataTable.Rows.Remove(DataRow),或者DataTable.Rows.RemoveAt...
  • yhj198927
  • yhj198927
  • 2016年08月19日 16:37
  • 5942

SQL语句(增、删、改、查)一、增:有4种方法1.使用insert插入单行数据:语法:insert

SQL语句(增、删、改、查)   一、增:有4种方法   1.使用insert插入单行数据:   语法:insert [into] [列名] values   例:insert into ...
  • Goldxwang
  • Goldxwang
  • 2016年11月16日 17:56
  • 1730

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

public partial class Form4 : Form { SqlConnection conn = null; SqlDataAdapter ad...
  • guoquanyou
  • guoquanyou
  • 2011年10月12日 15:21
  • 7466

WPF DevExpress GridControl TableView 全选 和反选 以及获取选中行的数据

XMAl 文件         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"         xmlns:x="...
  • u013115151
  • u013115151
  • 2015年07月07日 19:19
  • 1994

GridView中行的编辑与删除

  • 2013年12月02日 22:03
  • 87KB
  • 下载

easyui 获取数据表格中选中行的数据 Get selected row data from...

easyui 获取数据表格中选中行的数据 Get selected row data from... 0人收藏此文章, 我要收藏发表于8个月前(2012-02-23 23:43) , 已有146...
  • hongtaq
  • hongtaq
  • 2012年11月05日 15:02
  • 8381

UITableView 系列四 :项目中行的操作 (添加移动和删除)(实例)

这篇文章主要讲的表格的操作包括:标记行、移动行、删除行、插入行。   这次就不从头建立工程了,在http://dl.iteye.com/topics/download/441cdcca-3191-...
  • wowmboy
  • wowmboy
  • 2013年02月14日 23:59
  • 280

UITableView项目中行的操作 (添加移动和删除)

这篇文章主要讲的表格的操作包括:标记行、移动行、删除行、插入行。   这次就不从头建立工程了,在http://dl.iteye.com/topics/download/441cdcca-3...
  • perfect_promise
  • perfect_promise
  • 2012年07月12日 09:51
  • 20810

asp.net 使用数据绑定和DataSet

  • 2009年11月18日 10:13
  • 543KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:删除DATASET中行数据技巧
举报原因:
原因补充:

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