本人第一次写日志,见笑了,写得不好的地方请多指教~~开始步入正题~~(不然什么东东都飞过来了咧~~)
1、开发手记
这几天休息,没事做,就想上网看看新闻,发现每家新闻后面都有发表评论,有大有小,心里自己写个玩,于是乎就参照“网易”的评论系统写了个简单的评论。
2、需求分析
发表评论,支持和反对,支持对各种标题的评论,表中有个临时ID,可存入相关标题的ID值,从而关联获取值。
3、数据库设计
这里比较简单,就一张表,如下:
数据库名:comment
comment
|
序号 |
列名 |
数据类型 |
长度 |
小数位 |
标识 |
主键 |
允许空 |
默认值 |
字段说明 |
|
1 |
comm_id |
int |
4 |
0 |
√ |
√ |
|
|
评论ID |
|
2 |
comm_tid |
int |
4 |
0 |
|
|
√ |
|
评论标题ID |
|
3 |
comm_name |
nvarchar |
40 |
0 |
|
|
√ |
|
评论人 |
|
4 |
comm_time |
datetime |
8 |
3 |
|
|
√ |
|
发布时间 |
|
5 |
comm_ip |
nvarchar |
40 |
0 |
|
|
√ |
|
评论人IP |
|
6 |
comm_agree |
int |
4 |
0 |
|
|
√ |
(0) |
赞同 |
|
7 |
comm_against |
int |
4 |
0 |
|
|
√ |
(0) |
反对 |
|
8 |
comm_audit |
int |
4 |
0 |
|
|
√ |
(0) |
审核 |
|
9 |
comm_hot |
int |
4 |
0 |
|
|
√ |
(0) |
精华 |
|
10 |
comm_hits |
int |
4 |
0 |
|
|
√ |
(0) |
阅读次数 |
|
11 |
comm_content |
ntext |
16 |
0 |
|
|
√ |
|
评论内容 |
4、程序设计
程序三层开发(BS架构),每一层代码马上贴出。
⑴数据层
使用了微软的数据类(SqlHelper.cs),这个类的代码我就不贴出了。
数据外理类
SqlDal.cs
1
using System;
2
using System.Data;
3
using System.Collections.Generic;
4
using System.Data.SqlClient;
5
using System.Text;
6
using Model;
7
using System.Collections;
8
namespace DAL
9
{
10
public class SqlDal
11
{
12
/// <summary>
13
/// 添加一条新记录
14
/// </summary>
15
/// <param name="comm"></param>
16
public void Insert(comment comm)
17
{
18
try
19
{
20
StringBuilder sql = new StringBuilder();
21
sql.Append(" insert into comment(");
22
sql.Append("comm_tid, comm_name, comm_time, comm_ip, comm_agree, comm_against, comm_audit, comm_hot, comm_hits, comm_content");
23
sql.Append(")");
24
sql.Append(" values(");
25
sql.Append("" + comm.Comm_tid + ",");
26
sql.Append("\'" + comm.Comm_name + "\',");
27
sql.Append("\'" + comm.Comm_time + "\',");
28
sql.Append("\'" + comm.Comm_ip + "\',");
29
sql.Append("" + comm.Comm_agree + ",");
30
sql.Append("" + comm.Comm_against + ",");
31
sql.Append("" + comm.Comm_audit + ",");
32
sql.Append("" + comm.Comm_hot + ",");
33
sql.Append("" + comm.Comm_hits + ",");
34
sql.Append("\'" + comm.Comm_content + "\'");
35
sql.Append(") ");
36
SqlHelper.ExecuteNonQuery(sql.ToString());
37
}
38
catch (Exception ex)
39
{
40
throw new Exception(ex.Message, ex);
41
}
42
}
43
/// <summary>
44
/// 更新一条现有记录
45
/// </summary>
46
/// <param name="comm"></param>
47
public void Update(comment comm)
48
{
49
try
50
{
51
StringBuilder sql = new StringBuilder();
52
sql.Append(" update comment set ");
53
sql.Append("comm_tid=" + comm.Comm_tid + ",");
54
sql.Append("comm_name=\'" + comm.Comm_name + "\',");
55
sql.Append("comm_time=\'" + comm.Comm_time + "\',");
56
sql.Append("comm_ip=\'" + comm.Comm_ip + "\',");
57
sql.Append("comm_agree=" + comm.Comm_agree + ",");
58
sql.Append("comm_against=" + comm.Comm_against + ",");
59
sql.Append("comm_audit=" + comm.Comm_audit + ",");
60
sql.Append("comm_hot=" + comm.Comm_hot + ",");
61
sql.Append("comm_hits=" + comm.Comm_hits + ",");
62
sql.Append("comm_content=\'" + comm.Comm_content + "\'");
63
sql.Append(" where comm_id=" + comm.Comm_id);
64
SqlHelper.ExecuteNonQuery(sql.ToString());
65
}
66
catch (Exception ex)
67
{
68
throw new Exception(ex.Message, ex);
69
}
70
}
71
/// <summary>
72
/// 删除一条现有记录
73
/// </summary>
74
/// <param name="comm_id"></param>
75
public void Delete(int comm_id)
76
{
77
StringBuilder sql = new StringBuilder();
78
sql.Append(" delete from comment where comm_id=" + comm_id);
79
SqlHelper.ExecuteNonQuery(sql.ToString());
80
}
81
/// <summary>
82
/// 处理一条信息(如审核,推荐,热门,回收,还原)
83
/// </summary>
84
/// <param name="comm_id"></param>
85
public void Deal(string str,int val,int comm_id)
86
{
87
StringBuilder sql = new StringBuilder();
88
sql.Append(" update comment set " + str + "=" + val + " where comm_id=" + comm_id);
89
SqlHelper.ExecuteNonQuery(sql.ToString());
90
}
91
/// <summary>
92
/// 更新叠加
93
/// </summary>
94
/// <param name="str"></param>
95
/// <param name="comm_id"></param>
96
/// <returns></returns>
97
public int Hits(string str,int comm_id)
98
{
99
StringBuilder sql = new StringBuilder();
100
sql.Append(" update comment set " + str + "=" + str + "+1 where comm_id=" + comm_id);
101
return (int)SqlHelper.ExecuteNonQuery(sql.ToString());
102
}
103
/// <summary>
104
/// 获取字段值
105
/// </summary>
106
/// <param name="str"></param>
107
/// <param name="comm_id"></param>
108
/// <returns></returns>
109
public string FieldName(string str,int comm_id)
110
{
111
string tempstr = string.Empty;
112
StringBuilder sql = new StringBuilder();
113
sql.Append("select " + str + " from comment where comm_id=" + comm_id);
114
SqlDataReader dr = SqlHelper.ExecuteReader(sql.ToString());
115
if (dr.Read())
116
{
117
tempstr = dr[0].ToString();
118
}
119
dr.Close();
120
return tempstr;
121
}
122
/// <summary>
123
/// 查询一条记录
124
/// </summary>
125
/// <param name="comm_id"></param>
126
/// <returns></returns>
127
public comment Query(int comm_id,string conditions)
128
{
129
try
130
{
131
StringBuilder sql = new StringBuilder();
132
sql.Append(" select comm_name, comm_time, comm_ip, comm_agree, comm_against, comm_audit, comm_hot, comm_hits, comm_content, comm_tid from comment ");
133
sql.Append("where 1=1 " + conditions);
134
sql.Append(" and comm_id=" + comm_id);
135
DataTable dt = SqlHelper.Query(sql.ToString()).Tables[0].Copy();
136
comment comm = new comment();
137
comm.Comm_id = comm_id;
138
if (dt.Rows.Count > 0)
139
{
140
comm.Comm_name = dt.Rows[0]["comm_name"].ToString().Trim();
141
comm.Comm_tid = int.Parse(dt.Rows[0]["comm_tid"].ToString().Trim());
142
comm.Comm_time = DateTime.Parse(dt.Rows[0]["comm_time"].ToString());
143
comm.Comm_ip = dt.Rows[0]["comm_ip"].ToString().Trim();
144
comm.Comm_agree = int.Parse(dt.Rows[0]["comm_agree"].ToString());
145
comm.Comm_against = int.Parse(dt.Rows[0]["comm_against"].ToString());
146
comm.Comm_hot = int.Parse(dt.Rows[0]["comm_hot"].ToString());
147
comm.Comm_hits = int.Parse(dt.Rows[0]["comm_hits"].ToString());
148
comm.Comm_audit = int.Parse(dt.Rows[0]["comm_audit"].ToString());
149
comm.Comm_content = dt.Rows[0]["comm_content"].ToString().Trim();
150
return comm;
151
}
152
else
153
{
154
return null;
155
}
156
}
157
catch (Exception ex)
158
{
159
throw new Exception(ex.Message, ex);
160
}
161
}
162
/// <summary>
163
/// 记录总数提取
164
/// </summary>
165
/// <returns></returns>
166
public int Total(string tablename,string str,string conditions)
167
{
168
StringBuilder sql=new StringBuilder();
169
sql.Append("select count("+str+") from " + tablename + "");
170
sql.Append(" where 1=1 " + conditions);
171
object int_total = (object)SqlHelper.ExecuteScalar(sql.ToString());
172
return (int)int_total;
173
}
174
/// <summary>
175
/// 数据分页列表提取
176
/// </summary>
177
/// <param name="startindex"></param>
178
/// <param name="pagesize"></param>
179
/// <returns></returns>
180
public DataSet CommList(string tablename,int startindex,int pagesize,string conditions)
181
{
182
StringBuilder sql = new StringBuilder();
183
sql.Append("select * from "+tablename+" ");
184
sql.Append(" where 1=1 " + conditions);
185
sql.Append(" order by comm_time desc");
186
return SqlHelper.QueryPage(SqlHelper.connstr,CommandType.Text,sql.ToString(),startindex,pagesize,null);
187
}
188
/// <summary>
189
/// 是否存在记录
190
/// </summary>
191
/// <param name="tableName"></param>
192
/// <param name="conditions"></param>
193
/// <returns></returns>
194
public bool Exists(string tablename, string conditions)
195
{
196
StringBuilder sql = new StringBuilder();
197
try
198
{
199
sql.Append(" select count(1) from " + tablename + " ");
200
sql.Append(" where 1=1 " + conditions);
201
object obj = SqlHelper.ExecuteScalar(sql.ToString());
202
if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value)) || (int.Parse(obj.ToString()) == 0))
203
{
204
return false;
205
}
206
else
207
{
208
return true;
209
}
210
}
211
catch (Exception ex)
212
{
213
throw new Exception(ex.Message, ex);
214
}
215
}
216
}
217
}
218
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
待续……