zzzz1)方式属性:包括ActiveConnection属性和Source属性。
zzzz2)行为属性:包括CursorType属性、LockType属性、Filter属性、CacheSize属性和MaxRecords属性。
zzzz3)记录指针移动属性:包括BOF和EOF属性、RecordCount属性、BookMar属性、AbsikytePosition属性、PageSize属性、AbsolutePage属性和PageCount属性。
zzzz4)数据维护属性:包括EditMode属性和Status属性等。
1.方式属性
zzzz(1) ActiveConnection属性
zzzz此属性用于指定链接字符串或Connection对象的名称,方便RecordSet对象完成数据库链接有前置动作。
zzzz(2) Source属性
zzzz此属性用于设置或返回一个字符串,指定要检索数据库服务器。包含存储进程名、表名、SQL语句或在打开时用于为RecordSet提供记录集合的开放Command对象。
2.行为属性
zzzz(1)CursorType属性:此属性定义了指针的类型,不同的指针类型决定了对数据库所能做的 *** 作,它有4种可取值,如表7-9所示。
表7-9 CursorType属性值说明
zzzz(2)LockType属性:此属性决定了是否可以更新数据以及RecordSet的更新是否可以批量进行。LockType属性有4种可取值,如表7-10所示。
表7-10 LockType属性值说明
zzzz(3)Filter属性:此属性用于过滤由数据库服务器端所返回的数据,Filter属性设定值如表7-11所示。
表7-11 Filter所示属性值说明
zzzz(4)CacheSize属性:此属性指定保存在高速缓存中RecordSet记录的数目,也就是客户端每次由数据库服务器端取回数据记录的数目。对于只能向前移动的记录,默认值为1。
zzzz(5)MaxRecords属性:该属性设定返回给RecordSet记录的最大数目,默认值为0,表明将所有记录都加入到RecordSet中,打开RecordSet对象后,此属性为只读。
3.记录指针移动的属性
zzzz(1)BOF和EOF属性:这两个属性是用来判断指针是否在RecordSet的首记录之前或尾记录之后。如果当记录位于RecordSet的首记录之前,则BOF返回True.如果当前记录是位于RecordSet的尾记录之后,则EOF返回True.如果BOF 和EOF都为True,则说明RecordSet中没有记录。
zzzz(2)RecordCount属性:该属性用于返回RecordSet中的记录数。
zzzz(3)BookMark属性:当创建一个允许使用BookMark属性的RecordSet时,给每一个记录都标上独一无二的书签。利用此属性可以返回标记书签的位置。
zzzz(4)AbsolutePosition属性:此属性可以用于设置RecordSet当前记录的顺序位置。
zzzz(5)PageSize属性:当记录集合返回到RecordSet中时,集合就会被划分成任意大小的页。利用此属性可以页记录集合。
zzzz(6)AbsolutePage属性:此属性指定了指针的位置,通过改变它的值来通知ADO移动指定页面的开始位置。
zzzz(7)PageCount属性:此属性可用来返回RecordSet中的页数。如果RecordSet最后一页未满,其中的记录就少于PageCount值,则PageCount属性值应由下面的公式设定。
zzzzPageCount=(RecordCount+PageSize-1)/PageSize
4.数据维护属性
zzzz(1)EditMode属性:该属性返回一个表明当前记录编辑状态的值。此属性的返回值有3种如表7-12所示。
表7-12 EditMode返回值
zzzz(2)Status属性:此属性可以在实施一次批量更新后,查询RecordSet的状态。该属性常用于多用户链接管理。其返回值如表7-13所示。
表7-13 Status的返回值
rs = Server.CreateObject("ADODB.RecordSet")rs.Open(sqlStr,conn,1,A)
注:A=1表示读取数据;A=3表示新增、修改或删除数据。
在RecordSet组件中,常用的属性和方法有:
rs.Fields.Count:RecordSet对象字段数。
rs(i).Name:第i个字段的名称,i为0至rs.Fields.Count-1
rs(i):第i个字段的数据,i为0至rs.Fields.Count-1
rs("字段名"):指定字段的数据。
rs.RecordCount:数据记录总数。
rs.EOF:是否最后一条记录。
rs.MoveFirst:指向第一条记录。
rs.MoveLast:指向最后一条记录。
rs.MovePrev:指向上一条记录。
rs.MoveNext:指向下一条记录。
rs.GetRows:将数据放入数组中。
rs.Properties.Count:ADO的ResultSet或Connection的属性个数。
rs.Properties(item).Name:ADO的ResultSet或Connection的名称。
rs.Properties:ADO的ResultSet或Connection的值。
rs.close():关闭连接。
属性和方法分开列出
属性:
AbsolutePage属性:当RecordSet对象设有分页时,返回当前页码。
AbsolutePosition属性:当前指针的绝对位置。
ActiveConnection属性:指明进行SQL语句的数据库连接。
EOF属性:若指针位于第一条记录之前,返回TRUE、否则返回FALSE。
Bookmark属性:将指针设置在某条记录。
CursorLocation属性:设置或返回光标提供者的位置,若设为2(adUseServer)表示使用服务器端光标(默认);若设为3(adUseClient)表示使用浏览器端光标。
CursorType属性:指出RecordSet对象中使用的光标类型
EditMode属性:返回RecordSet对象当前的编辑模式
BOF属性:若指针位于最后一条记录之后,返回TRUE、否则返回FALSE。
Filter属性:从RecordSet对象中筛选记录。
LockType属性:指定编辑过程中对记录的锁定类型。
MaxRecords属性:可以返回的最多记录条数。
PageCount属性:返回RecordSet对象的分页总数。
PageSize属性:RecordSet对象设有分页时,设置分页的记录条数。
RecordCount属性:返回RecordSet对象中记录条数。
source属性:设置用来建立RecordSet对象的SQL来源。
State属性:返回RecordSet对象的状态:1(adStateOpen)表示打开;2(adStateClosed)表示关闭。
Status属性:返回对记录的处理是否成功:1(adStatusOK)表示成功;2(adStatueErrorsOccurred)表示产生错误。
方法:
AddNew方法:为可更新的RecordSet对象创建一个新记录。
CancelBatch方法:取消批次更新。
CancelUpdate方法:取消对当前的RecordSet对象中某一个记录的任何改变,但必须在使用Update之前。
Clone方法:复制一个已存在的RecordSet对象。
Delete方法:删除RecordSet对象中当前一条记录。
MoveFirst方法:将当前指针移到RecordSet对象中的第一条记录。
MoveLast方法:将当前指针移到RecordSet对象中的最后一条记录。
MoveNext方法:将当前指针移到RecordSet对象中的当前记录的下一条记录。
MovePrevious方法:将当前指针移到RecordSet对象中的当前记录的上一条记录。
Move n方法:将当前指针移到RecordSet对象中的当前指针到第n条记录。
Open方法:打开一个RecordSet对象。
Update方法:保存对当前RecordSet对象中记录的更新。
GetRows方法:从当前记录开始取出n条记录并存于一个二维数组中。
循环得到一条记录的所有值
For Each objFld In rs.Fields
Response.Write objFld
Next
得到属性个数
rs.Fields.count
主要是采用了HttpResponse.Filter属性来处理。具体代码如下:首先自定义一个类,来作为非法词汇的过滤器
1 public class ResponseFilter:Stream
2 {
3 #region properties
4
5 Stream responseStream
6 long position
7 StringBuilder html = new StringBuilder()
8
9 #endregion
10
11 #region constructor
12
13 public ResponseFilter(Stream inputStream)
14 {
15
16 responseStream = inputStream
17
18 }
19
20 #endregion
21
22 #region implemented abstract members
23
24 public override bool CanRead
25 {
26 get { return true}
27 }
28
29 public override bool CanSeek
30 {
31 get { return true}
32 }
33
34 public override bool CanWrite
35 {
36 get { return true}
37 }
38
39 public override void Close()
40 {
41 responseStream.Close()
42 }
43
44 public override void Flush()
45 {
46 responseStream.Flush()
47 }
48
49 public override long Length
50 {
51 get { return 0}
52 }
53
54 public override long Position
55 {
56 get { return position}
57 set { position = value}
58 }
59
60 public override long Seek(long offset, System.IO.SeekOrigin direction)
61 {
62 return responseStream.Seek(offset, direction)
63 }
64
65 public override void SetLength(long length)
66 {
67 responseStream.SetLength(length)
68 }
69
70 public override int Read(byte[] buffer, int offset, int count)
71 {
72 return responseStream.Read(buffer, offset, count)
73 }
74
75 #endregion
76
77 #region write method
78
79 public override void Write(byte[] buffer, int offset, int count)
80 {
81
82 string sBuffer = System.Text.UTF8Encoding.UTF8.GetString(buffer, offset, count)
83
84 //得到非法词汇列表,这个可以在数据库或Web.Config中读取出来
85 string pattern = @"(非法词汇1|非法词汇2|非法词汇3)"
86
87
88 string[] s = pattern.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries)
89
90 foreach (string s1 in s)
91 {
92 sBuffer = sBuffer.Replace(s1, "**")
93 }
94
95
96 byte[] data = System.Text.UTF8Encoding.UTF8.GetBytes(sBuffer)
97 responseStream.Write(data, 0, data.Length)
98
99 }
100
101 #endregion
102
103
104 }
然后再Global.asax文件中,添加如下代码:
1 public void Application_BeginRequest()
2 {
3 Response.Filter = new ResponseFilter(Response.Filter)
4
5 }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)