(原创)使用TimeStamp控制并发问题[示例]-.cs脚本
TimeStamp.aspx.cs代码(C#),已调试通过:
(原创)使用TimeStamp控制并发问题[示例]-简要描述
(原创)使用TimeStamp控制并发问题[示例]-页面HTML脚本
(原创)使用TimeStamp控制并发问题[示例]-创建后台数据库脚本
1
using System;
2
using System.Collections;
3
using System.ComponentModel;
4
using System.Data;
5
using System.Drawing;
6
using System.Web;
7
using System.Web.SessionState;
8
using System.Web.UI;
9
using System.Web.UI.WebControls;
10
using System.Web.UI.HtmlControls;
11![](/Images/OutliningIndicators/None.gif)
12
using System.Text;
13
using System.Data.SqlClient;
14
using DataAccess;
15![](/Images/OutliningIndicators/None.gif)
16
namespace TimeStamp
17
{
18
/// <summary>
19
/// WebForm1 的摘要说明。
20
/// </summary>
21
public class TimeStamp : System.Web.UI.Page
22
{
23
protected System.Web.UI.WebControls.TextBox tbKey;
24
protected System.Web.UI.WebControls.TextBox tbValue;
25
protected System.Web.UI.WebControls.TextBox tbTimeStamp;
26![](/Images/OutliningIndicators/InBlock.gif)
27
private DataTable dt;
28
protected System.Web.UI.WebControls.Button Button1;
29
protected System.Web.UI.WebControls.Label Label1;
30
31
protected string ConnectString = "server=oylb;User ID=sa;Password=;database=TimeStamp;Connection Reset=FALSE";
32![](/Images/OutliningIndicators/InBlock.gif)
33
private void Page_Load(object sender, System.EventArgs e)
34
{
35
if (!IsPostBack)
36
{
37
BindData(1);
38
}
39
}
40![](/Images/OutliningIndicators/InBlock.gif)
41
//取得数据
42
private void GetData(int kid)
43
{
44
DataSet ds = new DataSet();
45![](/Images/OutliningIndicators/InBlock.gif)
46
String[] sArrayTableName = {"TimeStamp"};
47
SqlHelper.FillDataset(ConnectString,CommandType.StoredProcedure,
48
"GetData",ds,sArrayTableName,
49
new SqlParameter("@KID",kid));
50![](/Images/OutliningIndicators/InBlock.gif)
51
dt = ds.Tables["TimeStamp"];
52![](/Images/OutliningIndicators/InBlock.gif)
53
//保存于Session,用于更新
54
Session["TimeStamp"] = dt;
55
}
56![](/Images/OutliningIndicators/InBlock.gif)
57
//绑定数据到控件
58
private void BindData(int kid)
59
{
60
GetData(kid);
61![](/Images/OutliningIndicators/InBlock.gif)
62
Byte[] myByte;
63![](/Images/OutliningIndicators/InBlock.gif)
64
this.tbKey.Text = dt.Rows[0]["KID"].ToString();
65
this.tbValue.Text = dt.Rows[0]["Name"].ToString();
66![](/Images/OutliningIndicators/InBlock.gif)
67
myByte = (System.Byte[])dt.Rows[0]["TimeStamp"];
68![](/Images/OutliningIndicators/InBlock.gif)
69
this.tbTimeStamp.Text = Encoding.ASCII.GetString(myByte,0,myByte.Length);
70
}
71![](/Images/OutliningIndicators/InBlock.gif)
72
//更新数据
73
private bool UpdateData()
74
{
75
dt = (DataTable)Session["TimeStamp"];
76
77
DataRow row = dt.Rows[0];
78![](/Images/OutliningIndicators/InBlock.gif)
79
row["Name"] = this.tbValue.Text.Trim();
80![](/Images/OutliningIndicators/InBlock.gif)
81
dt.AcceptChanges();
82![](/Images/OutliningIndicators/InBlock.gif)
83
int iEffect = SqlHelper.ExecuteNonQuery(ConnectString,"UpdateData",GetParam(row));
84![](/Images/OutliningIndicators/InBlock.gif)
85
if (iEffect != 1)
86
{
87
return false;
88
}
89![](/Images/OutliningIndicators/InBlock.gif)
90
return true;
91
}
92![](/Images/OutliningIndicators/InBlock.gif)
93
//根据datarow获取参数
94
private SqlParameter[] GetParam(DataRow row)
95
{
96
DataColumnCollection cols;
97![](/Images/OutliningIndicators/InBlock.gif)
98
cols = row.Table.Columns;
99![](/Images/OutliningIndicators/InBlock.gif)
100
int iBound = cols.Count;
101
102
SqlParameter[] Params = new SqlParameter[iBound];
103
SqlParameter Param = new SqlParameter();
104![](/Images/OutliningIndicators/InBlock.gif)
105
string strColumnName;
106
int iIndex = 0;
107![](/Images/OutliningIndicators/InBlock.gif)
108
object oRowValue = null;
109![](/Images/OutliningIndicators/InBlock.gif)
110
foreach(DataColumn col in cols)
111
{
112
strColumnName = col.ColumnName;
113![](/Images/OutliningIndicators/InBlock.gif)
114
oRowValue = row[col];
115![](/Images/OutliningIndicators/InBlock.gif)
116
if (oRowValue == System.DBNull.Value)
117
{
118
oRowValue = DBNull.Value;
119
}
120![](/Images/OutliningIndicators/InBlock.gif)
121
if (col.DataType.ToString() == "System.Byte[]")
122
{
123
//专门处理Timestamp
124
Param = new SqlParameter("@"+strColumnName,SqlDbType.Timestamp, 8);
125
Param.Direction = ParameterDirection.Input;
126
Param.Value = oRowValue;
127
}
128
else
129
{
130
Param = new SqlParameter();
131![](/Images/OutliningIndicators/InBlock.gif)
132
Param.ParameterName = "@"+strColumnName;
133
Param.SqlDbType = GetColSqlDbType(col);
134
Param.Direction = ParameterDirection.Input;
135
Param.Value = oRowValue;
136
}
137
138
Params[iIndex] = Param;
139
iIndex ++;
140
}
141![](/Images/OutliningIndicators/InBlock.gif)
142
return Params;
143
}
144![](/Images/OutliningIndicators/InBlock.gif)
145
//转化类型
146
private SqlDbType GetColSqlDbType(DataColumn col)
147
{
148
string strType = col.DataType.ToString();
149![](/Images/OutliningIndicators/InBlock.gif)
150
switch(strType)
151
{
152
case "System.Int32":
153
return SqlDbType.Int;
154
case "System.DateTime":
155
return SqlDbType.DateTime;
156
case "System.Double":
157
return SqlDbType.Decimal;
158
case "System.String":
159
return SqlDbType.Char;
160
case "System.Byte[]":
161
return SqlDbType.Timestamp;
162
default:
163
return SqlDbType.Char;
164
}
165
}
166
#region Web 窗体设计器生成的代码
167
override protected void OnInit(EventArgs e)
168
{
169
//
170
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
171
//
172
InitializeComponent();
173
base.OnInit(e);
174
}
175
176
/// <summary>
177
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
178
/// 此方法的内容。
179
/// </summary>
180
private void InitializeComponent()
181
{
182
this.Button1.Click += new System.EventHandler(this.Button1_Click);
183
this.Load += new System.EventHandler(this.Page_Load);
184![](/Images/OutliningIndicators/InBlock.gif)
185
}
186
#endregion
187![](/Images/OutliningIndicators/InBlock.gif)
188
private void Button1_Click(object sender, System.EventArgs e)
189
{
190
if (UpdateData())
191
{
192
this.Label1.Text = "成功!";
193
BindData(1);
194
}
195
else
196
{
197
this.Label1.Text = "失败!";
198
}
199
}
200
}
201
}
202![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
8
![](/Images/OutliningIndicators/None.gif)
9
![](/Images/OutliningIndicators/None.gif)
10
![](/Images/OutliningIndicators/None.gif)
11
![](/Images/OutliningIndicators/None.gif)
12
![](/Images/OutliningIndicators/None.gif)
13
![](/Images/OutliningIndicators/None.gif)
14
![](/Images/OutliningIndicators/None.gif)
15
![](/Images/OutliningIndicators/None.gif)
16
![](/Images/OutliningIndicators/None.gif)
17
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
18
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
19
![](/Images/OutliningIndicators/InBlock.gif)
20
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
23
![](/Images/OutliningIndicators/InBlock.gif)
24
![](/Images/OutliningIndicators/InBlock.gif)
25
![](/Images/OutliningIndicators/InBlock.gif)
26
![](/Images/OutliningIndicators/InBlock.gif)
27
![](/Images/OutliningIndicators/InBlock.gif)
28
![](/Images/OutliningIndicators/InBlock.gif)
29
![](/Images/OutliningIndicators/InBlock.gif)
30
![](/Images/OutliningIndicators/InBlock.gif)
31
![](/Images/OutliningIndicators/InBlock.gif)
32
![](/Images/OutliningIndicators/InBlock.gif)
33
![](/Images/OutliningIndicators/InBlock.gif)
34
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
35
![](/Images/OutliningIndicators/InBlock.gif)
36
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
37
![](/Images/OutliningIndicators/InBlock.gif)
38
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
39
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
40
![](/Images/OutliningIndicators/InBlock.gif)
41
![](/Images/OutliningIndicators/InBlock.gif)
42
![](/Images/OutliningIndicators/InBlock.gif)
43
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
44
![](/Images/OutliningIndicators/InBlock.gif)
45
![](/Images/OutliningIndicators/InBlock.gif)
46
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
47
![](/Images/OutliningIndicators/InBlock.gif)
48
![](/Images/OutliningIndicators/InBlock.gif)
49
![](/Images/OutliningIndicators/InBlock.gif)
50
![](/Images/OutliningIndicators/InBlock.gif)
51
![](/Images/OutliningIndicators/InBlock.gif)
52
![](/Images/OutliningIndicators/InBlock.gif)
53
![](/Images/OutliningIndicators/InBlock.gif)
54
![](/Images/OutliningIndicators/InBlock.gif)
55
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
56
![](/Images/OutliningIndicators/InBlock.gif)
57
![](/Images/OutliningIndicators/InBlock.gif)
58
![](/Images/OutliningIndicators/InBlock.gif)
59
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
60
![](/Images/OutliningIndicators/InBlock.gif)
61
![](/Images/OutliningIndicators/InBlock.gif)
62
![](/Images/OutliningIndicators/InBlock.gif)
63
![](/Images/OutliningIndicators/InBlock.gif)
64
![](/Images/OutliningIndicators/InBlock.gif)
65
![](/Images/OutliningIndicators/InBlock.gif)
66
![](/Images/OutliningIndicators/InBlock.gif)
67
![](/Images/OutliningIndicators/InBlock.gif)
68
![](/Images/OutliningIndicators/InBlock.gif)
69
![](/Images/OutliningIndicators/InBlock.gif)
70
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
71
![](/Images/OutliningIndicators/InBlock.gif)
72
![](/Images/OutliningIndicators/InBlock.gif)
73
![](/Images/OutliningIndicators/InBlock.gif)
74
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
75
![](/Images/OutliningIndicators/InBlock.gif)
76
![](/Images/OutliningIndicators/InBlock.gif)
77
![](/Images/OutliningIndicators/InBlock.gif)
78
![](/Images/OutliningIndicators/InBlock.gif)
79
![](/Images/OutliningIndicators/InBlock.gif)
80
![](/Images/OutliningIndicators/InBlock.gif)
81
![](/Images/OutliningIndicators/InBlock.gif)
82
![](/Images/OutliningIndicators/InBlock.gif)
83
![](/Images/OutliningIndicators/InBlock.gif)
84
![](/Images/OutliningIndicators/InBlock.gif)
85
![](/Images/OutliningIndicators/InBlock.gif)
86
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
87
![](/Images/OutliningIndicators/InBlock.gif)
88
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
89
![](/Images/OutliningIndicators/InBlock.gif)
90
![](/Images/OutliningIndicators/InBlock.gif)
91
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
92
![](/Images/OutliningIndicators/InBlock.gif)
93
![](/Images/OutliningIndicators/InBlock.gif)
94
![](/Images/OutliningIndicators/InBlock.gif)
95
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
96
![](/Images/OutliningIndicators/InBlock.gif)
97
![](/Images/OutliningIndicators/InBlock.gif)
98
![](/Images/OutliningIndicators/InBlock.gif)
99
![](/Images/OutliningIndicators/InBlock.gif)
100
![](/Images/OutliningIndicators/InBlock.gif)
101
![](/Images/OutliningIndicators/InBlock.gif)
102
![](/Images/OutliningIndicators/InBlock.gif)
103
![](/Images/OutliningIndicators/InBlock.gif)
104
![](/Images/OutliningIndicators/InBlock.gif)
105
![](/Images/OutliningIndicators/InBlock.gif)
106
![](/Images/OutliningIndicators/InBlock.gif)
107
![](/Images/OutliningIndicators/InBlock.gif)
108
![](/Images/OutliningIndicators/InBlock.gif)
109
![](/Images/OutliningIndicators/InBlock.gif)
110
![](/Images/OutliningIndicators/InBlock.gif)
111
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
112
![](/Images/OutliningIndicators/InBlock.gif)
113
![](/Images/OutliningIndicators/InBlock.gif)
114
![](/Images/OutliningIndicators/InBlock.gif)
115
![](/Images/OutliningIndicators/InBlock.gif)
116
![](/Images/OutliningIndicators/InBlock.gif)
117
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
118
![](/Images/OutliningIndicators/InBlock.gif)
119
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
120
![](/Images/OutliningIndicators/InBlock.gif)
121
![](/Images/OutliningIndicators/InBlock.gif)
122
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
123
![](/Images/OutliningIndicators/InBlock.gif)
124
![](/Images/OutliningIndicators/InBlock.gif)
125
![](/Images/OutliningIndicators/InBlock.gif)
126
![](/Images/OutliningIndicators/InBlock.gif)
127
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
128
![](/Images/OutliningIndicators/InBlock.gif)
129
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
130
![](/Images/OutliningIndicators/InBlock.gif)
131
![](/Images/OutliningIndicators/InBlock.gif)
132
![](/Images/OutliningIndicators/InBlock.gif)
133
![](/Images/OutliningIndicators/InBlock.gif)
134
![](/Images/OutliningIndicators/InBlock.gif)
135
![](/Images/OutliningIndicators/InBlock.gif)
136
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
137
![](/Images/OutliningIndicators/InBlock.gif)
138
![](/Images/OutliningIndicators/InBlock.gif)
139
![](/Images/OutliningIndicators/InBlock.gif)
140
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
141
![](/Images/OutliningIndicators/InBlock.gif)
142
![](/Images/OutliningIndicators/InBlock.gif)
143
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
144
![](/Images/OutliningIndicators/InBlock.gif)
145
![](/Images/OutliningIndicators/InBlock.gif)
146
![](/Images/OutliningIndicators/InBlock.gif)
147
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
148
![](/Images/OutliningIndicators/InBlock.gif)
149
![](/Images/OutliningIndicators/InBlock.gif)
150
![](/Images/OutliningIndicators/InBlock.gif)
151
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
152
![](/Images/OutliningIndicators/InBlock.gif)
153
![](/Images/OutliningIndicators/InBlock.gif)
154
![](/Images/OutliningIndicators/InBlock.gif)
155
![](/Images/OutliningIndicators/InBlock.gif)
156
![](/Images/OutliningIndicators/InBlock.gif)
157
![](/Images/OutliningIndicators/InBlock.gif)
158
![](/Images/OutliningIndicators/InBlock.gif)
159
![](/Images/OutliningIndicators/InBlock.gif)
160
![](/Images/OutliningIndicators/InBlock.gif)
161
![](/Images/OutliningIndicators/InBlock.gif)
162
![](/Images/OutliningIndicators/InBlock.gif)
163
![](/Images/OutliningIndicators/InBlock.gif)
164
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
165
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
166
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
167
![](/Images/OutliningIndicators/InBlock.gif)
168
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
169
![](/Images/OutliningIndicators/InBlock.gif)
170
![](/Images/OutliningIndicators/InBlock.gif)
171
![](/Images/OutliningIndicators/InBlock.gif)
172
![](/Images/OutliningIndicators/InBlock.gif)
173
![](/Images/OutliningIndicators/InBlock.gif)
174
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
175
![](/Images/OutliningIndicators/InBlock.gif)
176
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
177
![](/Images/OutliningIndicators/InBlock.gif)
178
![](/Images/OutliningIndicators/InBlock.gif)
179
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
180
![](/Images/OutliningIndicators/InBlock.gif)
181
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
182
![](/Images/OutliningIndicators/InBlock.gif)
183
![](/Images/OutliningIndicators/InBlock.gif)
184
![](/Images/OutliningIndicators/InBlock.gif)
185
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
186
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
187
![](/Images/OutliningIndicators/InBlock.gif)
188
![](/Images/OutliningIndicators/InBlock.gif)
189
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
190
![](/Images/OutliningIndicators/InBlock.gif)
191
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
192
![](/Images/OutliningIndicators/InBlock.gif)
193
![](/Images/OutliningIndicators/InBlock.gif)
194
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
195
![](/Images/OutliningIndicators/InBlock.gif)
196
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
197
![](/Images/OutliningIndicators/InBlock.gif)
198
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
199
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
200
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
201
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
202
![](/Images/OutliningIndicators/None.gif)
(原创)使用TimeStamp控制并发问题[示例]-简要描述
(原创)使用TimeStamp控制并发问题[示例]-页面HTML脚本
(原创)使用TimeStamp控制并发问题[示例]-创建后台数据库脚本