2) Reply.aspx : 주제보기 및 응답 페이지
< %@ page language = c# enablesessionstate = false debug = true %>
< %@ 가져 오기 네임 스페이스 = 시스템 %>
< %@ 어셈블리 이름 = System.Data %>
< %@ 가져 오기 네임 스페이스 = System.Data %>
< %@ import namespace = system.data.ado %>
<html> <head>
<title> 새 주제 게시. </title>
<%-수입 된 어셈블리와 네임 스페이스가 필요합니다-%>
<script language = c# runat = server>
데이터 세트 DS, RS;
Datarow dr;
문자열 postid;
public void page_load (Object Sender, Eventargs e)
{
// 페이지가 다시 게시되어 있는지 확인하십시오
if (! page.ispostback)
{
// 쿼리 문자열에서 postId를 가져옵니다
postId = request.params [postId];
if (postId! = null)
{
// 데이터베이스 연결 문자열. 다른 경로가있는 경우 데이터베이스 파일로의 경로를 변경하십시오.
// 데이터베이스 파일을 저장하고 있습니다
문자열 [이메일 보호] 공급자 = microsoft.jet.oledb.4.0; data source =+server.mappath (.// db // board.mdb);
// 데이터베이스에 연결합니다
Adoconnection myconn = 새로운 Adoconnection (strconn);
// String은 NewPost 테이블에서 레코드를 선택합니다
문자열 strcon = 선택 주제, 이름, 이메일, 메시지, NewPost에서 날짜를 선택하십시오.
// adodatasetCommand를 설정합니다
adodatasetcommand mycommand = 새로운 adodatasetcommand (strcon, myconn);
ds = 새로운 데이터 세트 ();
// 연결을 열는 것을 잊지 마십시오
myconn.open ();
// 데이터 세트를 채우십시오
mycommand.filldataset (ds, newpost);
// 위치 '0'에서 행을 가져 와서 Datarow 객체에 저장하십시오.
// 왜 '0'위치에서로드? 주어진 PostId 기억에는 하나의 레코드 만있을 수 있기 때문입니다 !!
// 왜 Datarow에 넣습니까? Datarow의 데이터에 쉽게 액세스 할 수 있습니다
dr = ds.tables [newpost] .rows [0];
// Datarow에서 피사체를 가져 와서 게시물 회신 양식의 주제 필드에 설정하십시오.
gourde.text = re :+dr [대상] .toString ();
// 응답 테이블에서 게시물에 대한 답장을 선택합니다.
strcon = 이름, 이메일, 주제, 메시지, 답변에서 날짜를 선택하십시오.
// 응답 테이블에 대한 새 adodatasetCommand 및 데이터 세트 만들기
adodatasetcommand mycommand2 = 새로운 adodatasetcommand (strcon, myconn);
rs = 새로운 데이터 세트 ();
// 데이터 세트를 채우십시오
mycommand2.filldataset (Rs, Reply);
// NewPost 테이블의 뷰 필드 업데이트 코드
// 주어진 PostID의 테이블에서 뷰 필드를 선택하십시오.
strcon = postId = +postId에서 newPost에서 뷰를 선택합니다.
// 나중에 AdodatAreader를 원하기 때문에 여기에서 AdoCommand를 만듭니다.
AdoCommand Vicomm = 새로운 AdoCommand (Strcon, MyConn);
Adodatareader 리더;
// 진술을 실행하고 adodatareader를 만듭니다
vicomm.Execute (Out Reader);
// 첫 번째 레코드를 읽으십시오 (한 레코드 만있을 수 있습니다 기억하십시오!)
reader.read ();
// 첫 번째 열에서 int32 값을 가져옵니다 (독자에 하나의 열이 있습니다. 위의 select 문을 확인하십시오).
int i = reader.getint32 (0);
// 뷰 수를 증가시킵니다
i ++;
reader.close ();
// 새로운보기 값으로 NewPost 테이블을 업데이트하십시오
strcon = 업데이트 newPost set views = +i +where (postId = +postId +);
//이 명령문에 동일한 AdoCommand 객체를 사용하여 CommandText 속성을 설정하기 위해
Vicomm.commandText = strcon;
//이 명령문은 출력이 없으므로 ExecuteNupery () 메소드를 사용합니다.
vicomm.executenonQuery ();
// 연결을 닫습니다
myconn.close ();
}
}
}
//이 메소드는 제출 버튼을 클릭하면 호출됩니다.
public void upply_click (Object Sender, Eventargs e)
{
// postID를 얻습니다
postId = request.params [postId];
// 필요한 모든 필드가 채워진 경우에만 진행됩니다
if (page.isvalid && name.text! = && istod.text! = && email.text! =) {
datetime now = dateTime.now;
errmess.text =;
// 데이터를 데이터베이스에 게시하려면 쿼리와 함께 postMessage.aspx 페이지를 호출해야합니다.
// 따라서 먼저 사용자가 게시 한 데이터에서 사용자 정의 쿼리를 빌드해야합니다.
// 쿼리를 사용하고 있으므로 데이터를 UTF8 형식으로 인코딩해야합니다.
문자열 req = name =+ system.web.httputility.urlencodetoString (name.text, system.text.encoding.utf8);
req+ = && email =+ system.web.httputility.urlencodetoString (email.text, system.text.encoding.utf8);
req+= && sulect =+system.web.httputility.urlencodetoString (giversity.text, system.text.encoding.utf8);
req+= && ip =+system.web.httputility.urlencodetostring (request.userhostaddress.tostring (), system.text.encoding.utf8);
req+ = && date =+ system.web.httputility.urlencodetoString (now.toString (), System.Text.Encoding.utf8);
req+ = && message =+ system.web.httputility.urlencodetoString (message.text, system.text.encoding.utf8);
// 게시물이 새 게시물이 아니라 이전 메시지에 대한 답장을 나타내도록 NO를 인코딩합니다.
req+ = && newPost =+ system.web.httputility.urlencodetoString (no, system.text.encoding.utf8);
req+ = && previd =+ system.web.httputility.urlencodetoString (postId, system.text.encoding.utf8);
// 사용자 정의 쿼리로 postMessage 페이지를 호출하십시오
page.navigate (postmessage.aspx? + req);
}
또 다른
{
errmess.text = 필요한 모든 필드를 채우십시오! ;
}
}
</스크립트>
<link href = mystyle.css type = text/css rel = 스타일 시트> </head>
<Body TopMargin = 0 LeftMargin = 0 RightMargin = 0 marginWidth = 0 marginHeight = 0>
<%-헤더 파일 '헤더 .inc'-%> 포함
<!-#include file = header.inc->
<br>
<div align = center>
<테이블 테두리 = 0 너비 = 80% 셀 스페이스 = 2>
<tr class = fohead> <th width = 20%> 저자 이름 </th>
<th width = 80%> 메시지 </th> </tr>
<%- 아래 나는 저자의 이름으로 저자의 이메일을 캡슐화하고 있습니다.
저자를 클릭하면 이메일이 그에게 전송됩니다.
또한 데이터베이스에서 DateTime을 얻고 날짜와 시간을 별도로 표시하고 있습니다 -%>
<tr class = folight> <td rowspan = 2 align = center> < %= <a href = mailto :+dr [email]+>+dr [이름]+</a> %> <br>
<font size = 1> <%= dr [date] .toString (). todateTime (). TOSHORTDATESTRING ()%> <br>
< %= dr [date] .toString (). todateTime (). TOSHORTTIMESTRING () %> </font>
</td>
<td> <b> 제목 : </b> < %= dr [대상] %> </td> </tr>
<tr class = folight>
<td> <pre> < %= dr [메시지] %> </pre> </td>
</tr>
<%-모든 답장을 원래 게시물에 가져 와서 보여주세요-%>
<% int no = rs.tables [reply] .rows.count;
if (no> 0)
{
for (int j = 0; j <no; j ++)
{
Datarow rd = rs.tables [Reply] .rows [j];
%>
<tr class = fodark>
<td align = center> < %= <a href = mailto :+rd [이메일]+>+rd [이름]+</a> %> <br>
<font size = 1> <%= rd [date] .toString (). todateTime (). TOSHORTDATESTRING ()%> <br>
< %= rd [date] .toString (). todateTime (). TOSHORTTIMESTRING () %> </font>
</td>
<td> <pre> < %= rd [메시지] %> </pre> </td>
</tr>
<%
}
}
%>
</테이블>
</div>
<h3 align = center class = fodark> <a href = forum.aspx> 여기를 클릭하십시오 </a> 포럼으로 돌아갑니다.
<br> 위의 게시물에 답장. </h3>
<br>
<asp : label id = errmess text = style = color :#ff0000 runat = server />
<form runat = server>
<테이블 테두리 = 0width = 80% align = center>
<tr>
<td class = fohead colspan = 2> <b> 게시물에 대한 답장 </b> </td>
</tr>
<tr class = folight>
<td> 이름 : </td>
<td> <asp : textbox text = id = name runat = server/> <font color =#ff0000>*</font> </td>
</tr>
<tr class = folight>
<td> 이메일 : </td>
<td> <asp : textbox text = id = email runat = server/> <font color =#ff0000>*</font> </td>
</tr>
<tr class = folight>
<td> 제목 : </td>
<td> <asp : textbox test = id = 주제 너비 = 200 runat = server/> <font color =#ff0000>*</font>
</td> </tr>
<tr class = folight>
<td> 메시지 : </td>
<td>
<asp : textbox id = message runat = server입니다
열 = 30 행 = 15 TextMode = multiline> </asp : textbox> </td>
</tr>
<tr class = folight>
<td colspan = 2>
<asp : button class = fodark id = write onclick = submit_click runat = 서버 텍스트 = 제출> </asp : button> </td> </tr>
</테이블>
</form> <br>
<br> <!-#include file = footer.inc->
</body> </html>