?? book.aspx.cs
字號:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Text.RegularExpressions;
namespace book
{
/// <summary>
///簡單.NET留言本
///author:YOYO
//源碼之家:www.codejia.com
/// </summary>
public partial class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid booklist;
protected void Page_Load(object sender, System.EventArgs e)
{
if(!this.IsPostBack)
{
switch(GetQuery()[0])
{
case "":
//main();
Dsmain();
break;
case "write":
Write();
this.title1.InnerHtml="寫新留言";
this.WMenu.Attributes.Add("class","menu_hover");
this.SMenu.Attributes.Add("class","menu_link");
break;
case "save":
Save();
break;
case "del":
//Del();
break;
default:
//main();
Dsmain();
break;
}
}
}
protected void Page_UnLoad(object sender, System.EventArgs e){
//oleConnection.Close();
}
//判斷是否為數字函數
private bool IsNumbers(string text)
{
string oText;
oText=text.Trim();
try
{
int var1=Convert.ToInt32 (oText);
return true;
}
catch
{
return false;
}
}
//得到get參數
private string[] GetQuery()
{
string qurystr=Convert.ToString(Request.ServerVariables["QUERY_STRING"]).Trim().ToLower();
if(qurystr.IndexOf("/_",0)>=0)
{
string[] strlist=Regex.Split(qurystr,"/_",RegexOptions.IgnoreCase)[1].Split(new char[] {'/'});
return strlist;
}
else
{
return new string[] {""};
}
}
private void main()
{
string dbPath=System.Configuration.ConfigurationSettings.AppSettings["dbpath"];
OleDbConnection oleConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data source=" + Server.MapPath(dbPath));
//string Sql = "SELECT * FROM book";
OleDbCommand cmd=new OleDbCommand("SELECT * FROM book ORDER BY id DESC",oleConnection);
cmd.CommandType = CommandType.Text;
try
{
cmd.Connection.Open();
OleDbDataReader dr= cmd.ExecuteReader();
if(dr.Read())
{
int curPage;
if(Request.QueryString["page"]!=null && Request.QueryString["page"].Length!=0 && IsNumbers(Request.QueryString["page"].ToString()))
{
curPage=Convert.ToInt32(Request.QueryString["page"]);
}
else{
curPage=1;
}
int perPage=5;
int i=1;
string content="<div>";
do
{
if((i>=(curPage-1)*perPage+1)&&(i<=curPage*perPage))
{
content+="<div class=\"list\">";
content+="<h3>"+i+"</h3><h4>名字:"+dr["name"]+" [<i>"+dr["date"]+"</i>]</h4>";
content+="<div class=\"con\">內容:"+dr["content"]+"</div>";
content+="</div>";
}
i++;
}while(dr.Read());
content+="</div>";
int maxPage=(i%perPage==0)?i/perPage:(i/perPage)+1;
this.main_content.InnerHtml+=content;
this.main_content.InnerHtml+="<div class=\"page\">共有"+i+"條留言,當前第"+curPage+"頁,共"+maxPage.ToString()+"頁,";
this.main_content.InnerHtml+=(curPage>1)?"<a href=\"?page=1\">首頁</a>":"首頁";
this.main_content.InnerHtml+=" | ";
this.main_content.InnerHtml+=(curPage>1)?"<a href=\"?page="+(curPage-1)+"\">上一頁</a>":"上一頁";
this.main_content.InnerHtml+=" | ";
this.main_content.InnerHtml+=(curPage<maxPage)?"<a href=\"?page="+(curPage+1)+"\">下一頁</a>":"下一頁";
this.main_content.InnerHtml+=" | ";
this.main_content.InnerHtml+=(curPage<maxPage)?"<a href=\"?page="+maxPage.ToString()+"\">尾頁</a>":"尾頁";
this.main_content.InnerHtml+="</div>";
}
else{
this.main_content.InnerHtml="<li>暫無留言</li>";
}
dr.Close();
}
catch
{
Response.Write("請檢查數據庫連接");
Response.End();
}
finally
{
cmd.Connection.Close();
}
}
private void Write()
{
write1.Visible=true;
}
private void Save()
{
this.write1.Visible=false;
string name1=Request.Form["name"].ToString().Trim();
string content1=Request.Form["content"].ToString().Trim();
if(name1==""||content1=="")
{
Response.Write("<script>alert(\"信息不完整!\");history.back(1);</script>");
Response.End();
}
string dbPath=System.Configuration.ConfigurationSettings.AppSettings["dbpath"];
string ACconnStr="Provider=Microsoft.Jet.OleDb.4.0;Data Source="+Server.MapPath(dbPath);
OleDbConnection ACconn=new OleDbConnection(ACconnStr);
ACconn.Open();
string ACsql="insert into book(name,content)values(\""+name1+"\",\""+content1+"\")";
OleDbCommand ACcmd=new OleDbCommand(ACsql,ACconn);
try
{
ACcmd.ExecuteNonQuery();
Response.Redirect("book.aspx");
}
catch
{
this.main_content.InnerHtml="留言失敗!<a href=\"book.aspx\">返回</a>";
}
finally
{
ACconn.Close();
ACcmd.Connection.Close();
ACcmd.Dispose();
}
}
protected void Dsmain()
{
int curPage;
string[] query=GetQuery();
if(query[0]!=""&&query[0]!=null&& IsNumbers(query[0]))
{
curPage=Convert.ToInt32(query[0]);
}
else
{
curPage=1;
}
int perPage=5;
//取得數據庫路徑
string dbPath=System.Configuration.ConfigurationSettings.AppSettings["dbpath"];
//定義數據庫連接字符串
string ACconnStr="Provider=Microsoft.Jet.OleDb.4.0;Data Source="+Server.MapPath(dbPath);
//定義SQL語句
string ACsql="SELECT * FROM book ORDER BY id DESC"; //創建數據庫連接對像
OleDbConnection ACconn=new OleDbConnection(ACconnStr);
ACconn.Open();
//定義數據適配器
OleDbDataAdapter ACda=new OleDbDataAdapter(ACsql,ACconn);
//創建數據集
DataSet ACds=new DataSet();
//創建所有數集
ACda.Fill(ACds,"AllDataTable");
int total;
//兩種方式取得總記錄數
//OleDbCommand objCommand=new OleDbCommand(ACsql,ACconn);
//total=(int)objCommand.ExecuteScalar();
//第二種
total=ACds.Tables["AllDataTable"].Rows.Count;
int maxPage=(total%perPage==0)?total/perPage:(total/perPage)+1;
if(curPage>maxPage)
{
curPage=maxPage;
}
//從指定的索引開始取PageSize條記錄
ACda.Fill(ACds,perPage*(curPage-1),perPage,"CurDataTable");
DataTable dt;
dt=ACds.Tables["CurDataTable"];
string content="<div>";
for(int i=0;i<=dt.Rows.Count-1;i++)
{
DataRow dr=dt.Rows[i];
content+="<div class=\"list\">";
content+="<h3>id:"+dr["id"]+"</h3><h4>名字:"+dr["name"]+" [<i>"+dr["date"]+"</i>]</h4>";
content+="<div class=\"con\">內容:"+dr["content"]+"</div>";
content+="</div>";
}
content+="</div>";
this.main_content.InnerHtml=content;
this.main_content.InnerHtml+="<div class=\"page\">共有"+total+"條留言,當前第"+curPage+"頁,共"+maxPage.ToString()+"頁,";
this.main_content.InnerHtml+=(curPage>1)?"<a href=\"?/_1/\">首頁</a>":"首頁";
this.main_content.InnerHtml+=" | ";
this.main_content.InnerHtml+=(curPage>1)?"<a href=\"?/_"+(curPage-1)+"/\">上一頁</a>":"上一頁";
this.main_content.InnerHtml+=" | ";
this.main_content.InnerHtml+=(curPage<maxPage)?"<a href=\"?/_"+(curPage+1)+"/\">下一頁</a>":"下一頁";
this.main_content.InnerHtml+=" | ";
this.main_content.InnerHtml+=(curPage<maxPage)?"<a href=\"?/_"+maxPage.ToString()+"/\">尾頁</a>":"尾頁";
this.main_content.InnerHtml+="</div>";
dt.Dispose();
ACds.Dispose();
ACda.Dispose();
ACconn.Close();
}
#region Web 窗體設計器生成的代碼
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 該調用是 ASP.NET Web 窗體設計器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 設計器支持所需的方法 - 不要使用代碼編輯器修改
/// 此方法的內容。
/// </summary>
private void InitializeComponent()
{
this.Unload += new System.EventHandler(this.Page_UnLoad);
}
#endregion
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -