DictionaryEntry类是一个字典集合,主要包含的内容是键/值对。这种组合方式可以方便地定位数据,其中的“键”具备唯一性,类似于数据库中的“id”,一个id对应一天记录,而一个键只对应一个值。
使用DictionaryEnry类可以方便地设置和检索数据。虽然被称为字典集合,但DictionaryEntry并不包含一组数据,而只是一个“键/值”对,一般通过“IDictionaryEnumerator”、“IOrderedDictionary”或Hashtable来获取DictionaryEntry实例,这一点需要注意。
语法定义:
DictionaryEntry类的语法定义如下所示,注意其属于“struct”结构类型。
[SerializableAttribute]
[ComVisibleAttribute(true)]
public struct DictionaryEntry
DicctionaryEntry类的构造语法如下所示,其中key表示键,value表示值。
public DictionaryEntry (object key,object value)
使用DictionaryEntry类一般不用new关键字实例化,而是使用“foreach”遍历的方法,从某一集合获取DictionaryEntry的实例,使用方法如下:
foreach(DictionaryEntry dic in e.Keys)
DictionaryEntry的属性
Key :字典的键,必须唯一
Value:字典的值。可通过检索“键”获取或设置
下面演示如何在程序中使用DictionaryEntry类的这两个属性:
Response.Write("这是当前数据表格的键列表:<br/>");
int i =0;
foreach(DictionaryEntry dic in e.Keys)
{
//遍历并显示数据表格所有的键
i++;
Response.Write("第"+ i.ToString() + "个键为:" +dic.Key.ToString() +",值为:" + dic.Value.ToString());
}
用DictionaryEntry获取GridView中的数据更新
DictionaryEntry类通常不需要为自己设置数据,而是用来获取某一个集合中的数据。本例使用DictionaryEntry类实例化“IOderedDictionary”中的数据,其中“IOrderedDictionary”包含的是GridView的键和值。
在使用GridView更新数据时,需要注意如下三点。
1、被更新的记录的主键:主键用来确定更新的数据的唯一性。
2、更新记录的新数据:用在更新数据库语句中。
3、更新记录的旧数据:用来判断更新的一些条件,比如说数据等于1时不被更新。
通过上述三点,可以知道GridView更新数据的一些原理。在GridView更新事件中,提供三个参数来表示上面的三种数据,分别为“Keys”、“NewValues”、“OldValues”。这些数据都以“IOrderedDictionary”的形式存储。
本例要实现的功能是当前用户更新数据后,显示当前用户更新的数据,同时显示数据表格的主键,主要完成的是一个提示功能。
在GridView的“Row_Updated”事件中,获取数据更新的键值,代码如下:
protected void GridView1_RowUpdated(object sender,GridViewUpdatedEventArgs e)
{
foreach(DictionaryEntry mydictionary in e.OldValues)
{
//显示修改前的数据
Response.Write("修改前的数据——" + mydictionary.Key.ToString() + ":" + mydictionary.Value.ToString());
}
foreach(DictionaryEntry mydictionary in e.NewValues)
{
//显示修改后的数据
Response.Write("修改后的数据——" + mydictionary.Key.ToString() + ":" + mydictionary.Value.ToString());
}
foreach(DictionaryEntry mydictionary in e.Keys)
{
//显示当前表格的主键——可能有多个,如果没有则无法更新
Response.Write("<br/>当前主键——" + mydictionary.Key.ToString() + ":" + mydictionary.Value.ToString());
}
}