我在操作数据表时,使用了row.delete方法。
可是在我还想访问这条数据时,编译器提示,不可以访问被标志为删除的数据请问如何访问。
我通过讲dataset数据写入XML发现 被删除的数据是存在的,只是换了个数据
可是在我还想访问这条数据时,编译器提示,不可以访问被标志为删除的数据请问如何访问。
我通过讲dataset数据写入XML发现 被删除的数据是存在的,只是换了个数据
解决方案 »
- DataSet的getxml方法
- 请问我如何把一个b/s模式的信息系统加入到vs2005的项目中?
- 虚心求教:C# Winform的textbox效果如邮件收件人效果
- VS2005 “System.Web.UI.WebControls.TreeNode”并不包含“Nodes”的定义
- textbox的tabindex属性
- C#查询出的记录数据最好通过什么控件显示出来?最好!
- 如何判断或获取一个事件的发生?
- 如何在c#里运行一个以前做好的exe文件
- vs2005怎么用dataGridView更新数据?
- 如果在WinForm中的RichTextBox里加上水平线,就象页面一样的?
- 如何实现xp开机的用户切换界面
- c# 2005如何在word文档中指定位置插入图片或图像
row[columnName, DataRowVersion.Original]
实际上
row[columnName]默认使用的是row[columnName, DataRowVersion.Current]
参照msdn DataRowVersion的说明会很清楚。
不过微软如果能开放部分这种顶层类的代码对于我们理解c#会更好
using System;
using System.IO;
using System.Text;
using System.Diagnostics;
using System.Threading;
using System.Collections;
using System.Data;
using System.Xml;
using System.Management;
using System.Net;
namespace Zhzuo
{
class ZZConsole
{
[STAThread]
static void Main(string[] args)
{
DataSet ds = new DataSet();
CreatDataSetSchema(ds);
InitData(ds);
DataRow drdel = ds.Tables["Hosts"].Rows[0];
drdel.Delete();
Console.WriteLine(drdel.HasVersion(DataRowVersion.Default).ToString());
foreach(DataRow dr in ds.Tables["Hosts"].GetChanges(DataRowState.Deleted).Rows)
{
//if(dr.HasVersion(DataRowVersion.Current))
//{
Console.WriteLine((string)dr["HId"]);
Console.WriteLine(dr["IsLocal",DataRowVersion.Original].ToString());
//}
}
Console.WriteLine("end");
Console.ReadLine();
}
//初始化数据集结构
private static void CreatDataSetSchema(DataSet ds)
{
DataTable dt = new DataTable("Hosts");
DataColumn dc = new DataColumn("HId",typeof(String));
dt.Columns.Add(dc);
dc = new DataColumn("IsLocal",typeof(Boolean));
dt.Columns.Add(dc);
ds.Tables.Add(dt);
}
//加入数据
private static void InitData(DataSet ds)
{
DataRow hostsRow = ds.Tables["Hosts"].NewRow();
hostsRow["HId"] = "192.192.132.229";
hostsRow["IsLocal"] = true;
ds.Tables["Hosts"].Rows.Add(hostsRow); hostsRow = ds.Tables["Hosts"].NewRow();
hostsRow["HId"] = "192.192.132.231";
hostsRow["IsLocal"] = false;
ds.Tables["Hosts"].Rows.Add(hostsRow); hostsRow = ds.Tables["Hosts"].NewRow();
hostsRow["HId"] = "192.192.132.233";
hostsRow["IsLocal"] = false;
ds.Tables["Hosts"].Rows.Add(hostsRow);
}
}
}