使用純粹的asp+語(yǔ)言制作的欄目管理(一)
發(fā)表時(shí)間:2023-08-11 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]http://www.asp888.net 豆腐技術(shù)站 昨天的asx 版本的欄目管理和以前的 留言版的程序自從推出以后,反響不錯(cuò),但是很多網(wǎng)友紛紛提出了新的問(wèn)題,他們認(rèn)為 這兩個(gè)程序其實(shí)只是 asp...
http://www.asp888.net 豆腐技術(shù)站
昨天的asx 版本的欄目管理和以前的 留言版的程序自從推出以后,反響不錯(cuò),但是很多網(wǎng)友紛紛提出了新的問(wèn)題,他們認(rèn)為 這兩個(gè)程序其實(shí)只是 asp 文件簡(jiǎn)單的升級(jí)到aspx 文件,大家并沒(méi)有從這些程序中看出aspx的新的特征,紛紛要求 豆腐 使用aspx 的特性來(lái)制作一個(gè) aspx 版本的程序,還有的 朋友要求 編程的語(yǔ)言不要再 使用 VB,而是使用C# 語(yǔ)句,其實(shí) MS 推薦的語(yǔ)言是 VB,不過(guò)為了 照顧大家學(xué)習(xí)新知識(shí)的渴望,豆腐 又 推出了這個(gè)以 純粹的 aspx 特性+C# 語(yǔ)言制作的 欄目管理程序,下載會(huì)在 很快制作完畢。
現(xiàn)在首先看看 這個(gè)新的 add.aspx
<%@ Assembly Name="System.Net" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SQL" %>
<script language="C#" runat=server>
protected void Page_Load(Object Src, EventArgs E){
SQLDataReader dbRead;
SQLCommand dbComm;
String strSQL;
String strConn;
SQLConnection conn;
Hashtable Cfg=new Hashtable();
Cfg = (Hashtable)Context.GetConfig("appsettings");
strConn=Cfg["Conn"].ToString();
conn = new SQLConnection(strConn);
strSQL="select * from lanmuclass order by classid";
dbComm = new SQLCommand(strSQL, conn);
dbComm.ActiveConnection.Open();
dbComm.Execute(out dbRead);
while(dbRead.Read()){
//這個(gè)程序是 在 DropDownList 的 顯示和Value 不一致的時(shí)候使用
ListItem li = new ListItem();
li.Text = dbRead["classname"].ToString();
li.Value = dbRead["classid"].ToString();
selClass.Items.Add(li);
}
//如果 顯示 和 Value 一直的話(huà),則簡(jiǎn)單的這樣就可以了
selFrom.Items.Add("原創(chuàng)");
selFrom.Items.Add("轉(zhuǎn)載");
selFrom.Items.Add("翻譯");
selFrom.Items.Add("資料整理");
//如果不在<asp:TextBox 中設(shè)置 TextMode 屬性,也可以這樣設(shè)置
//txtPass.TextMode = TextBoxMode.Password;
}
</script>
<html>
<head>
<title>增加文章</title>
<link rel="stylesheet" type="text/css" href="/doufu.css">
</head>
<body>
<form action="doSaveAdd.aspx" method=post>
<asp:Table id="tableTest" width=100% GridLines="Both" Runat="server" HorizontalAlign="Center" Font-Name="Verdana" Font-Size="8pt" CellPadding=15 CellSpacing=0>
<asp:TableRow runat=server>
<asp:TableCell width=20%>呢稱(chēng)</asp:TableCell>
<asp:TableCell width=30%><asp:TextBox id="txtName" runat=server /></asp:TableCell>
<asp:TableCell width=20%>密碼</asp:TableCell>
<asp:TableCell width=30%><asp:TextBox id="txtPass" TextMode = Password runat=server /></asp:TableCell>
</asp:TableRow>
<asp:TableRow runat=server>
<asp:TableCell width=20%>文章類(lèi)別</asp:TableCell>
<asp:TableCell width=30% colspan=3><asp:DropDownList id=selClass runat=server /></asp:TableCell>
</asp:TableRow>
<asp:TableRow runat=server>
<asp:TableCell width=20%>發(fā)表類(lèi)別</asp:TableCell>
<asp:TableCell width=30% colspan=3><asp:DropDownList id=selFrom runat=server /></asp:TableCell>
</asp:TableRow>
<asp:TableRow runat=server>
<asp:TableCell width=20%>文章標(biāo)題</asp:TableCell>
<asp:TableCell width=30% colspan=3>
<asp:TextBox id="txtTitle" runat=server />
<asp:Button id="cmdDo" runat=server text="確定增加" />
</asp:TableCell>
</asp:TableRow>
<asp:TableRow runat=server>
<asp:TableCell width=20%>文章內(nèi)容</asp:TableCell>
<asp:TableCell width=30% colspan=3><asp:TextBox id="txtContent" TextMode=MultiLine rows=20 cols=40 runat=server /></asp:TableCell>
</asp:TableRow>
</asp:Table>
</form>
</body>
</html>
這里的這個(gè)程序很簡(jiǎn)單,但是他用到了 aspx 的一些特殊的屬性,同時(shí) 由于 C# 是 區(qū)分大小寫(xiě)的 語(yǔ)言,所以大家在 從 VB 轉(zhuǎn)到 C# 的時(shí)候 一定要非常的小心。
doSaveAdd.aspx文件的內(nèi)容:
<%@ Assembly Name="System.Net" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SQL" %>
<script language="C#" runat=server>
protected void Page_Load(Object Src, EventArgs E){
String strConn;
SQLConnection conn;
Hashtable Cfg=new Hashtable();
Cfg = (Hashtable)Context.GetConfig("appsettings");
strConn=Cfg["Conn"].ToString();
conn = new SQLConnection(strConn);
String strName=Request.Form["txtName"].ToString();
String strPass=Request.Form["txtPass"].ToString();
if(strName==""){
showmsg.Text="對(duì)不起,用戶(hù)名稱(chēng)是 閉填項(xiàng)目";
return;
}
String strSQL;
//首先校驗(yàn)用戶(hù)和密碼是否正確
SQLDataReader dbRead;
strSQL="select UserPassword from bbsuser where username='" + strName + "'";
SQLCommand sqlCmd=new SQLCommand(strSQL,conn);
sqlCmd.ActiveConnection.Open();
sqlCmd.Execute(out dbRead);
if(!dbRead.Read()){
showmsg.Text="對(duì)不起,這個(gè)用戶(hù)不存在!";
return;
}
if(dbRead["UserPassword"].ToString()!=strPass){
showmsg.Text="對(duì)不起,用戶(hù)名稱(chēng)和用戶(hù)密碼不匹配!";
return;
}
sqlCmd.ActiveConnection.Close();
//密碼匹配,將用戶(hù)輸入的文本信息保存到數(shù)據(jù)庫(kù)中
//因?yàn)槭?演示 程序,所以就沒(méi)有 檢驗(yàn) 標(biāo)題和內(nèi)容 的合法性
String strClassId=Request.Form["selClass"];
String strSelFrom=Request.Form["selFrom"];
String strTitle=Request.Form["txtTitle"];
String strContent=Request.Form["txtContent"];
strSQL="insert into lanmu(classid,title,content,dtime,userid,IsUse,viewnum,selFrom)values(";
strSQL=strSQL + "" + strClassId + ",'" + strTitle + "','" + strContent + "',";
strSQL=strSQL + "getdate(),'" + strName + "','0',0,'" + strSelFrom + "')";
sqlCmd =new SQLCommand(strSQL,conn);
sqlCmd.ActiveConnection.Open();
sqlCmd.ExecuteNonQuery();
//雖然系統(tǒng)可以自動(dòng)關(guān)閉這個(gè)Command對(duì)象,但是最好還是自己關(guān)閉一下
sqlCmd.ActiveConnection.Close();
}
</script>
<html>
<head>
<title>增加文章</title>
<link rel="stylesheet" type="text/css" href="/doufu.css">
</head>
<body>
<asp:Label id=showmsg Text="恭喜,恭喜,您的文章已經(jīng)添加到了數(shù)據(jù)庫(kù)中!" runat=server />
</body>
</html>
其實(shí),這個(gè) doSaveAdd.aspx 文件其實(shí)是 可以不用的,我們只要在 add.aspx 的 cmdDo 上處理他的OnClick 事件就可以了,程序是 一樣的,給大家一種新的 選擇,不是更好嗎?