http://www.asp888.net 豆腐技术站 昨天的asx 版本的栏目管理和以前的 留言版的程序自从推出以后,反响不错,但是很多网友纷纷提出了新的问题,他们认为 这两个程序其实只是 asp 文件简单的升级到aspx 文件,大家并没有从这些程序中看出aspx的新的特征,纷纷要求 豆腐 使用aspx 的特性来制作一个 aspx 版本的程序,还有的 朋友要求 编程的语言不要再 使用 VB,而是使用C# 语句,其实 MS 推荐的语言是 VB,不过为了 照顾大家学习新知识的渴望,豆腐 又 推出了这个以 纯粹的 aspx 特性+C# 语言制作的 栏目管理程序,下载会在 很快制作完毕。 现在首先看看 这个新的 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()){ //这个程序是 在 DropDownList 的 显示和Value 不一致的时候使用 ListItem li = new ListItem(); li.Text = dbRead["classname"].ToString(); li.Value = dbRead["classid"].ToString(); selClass.Items.Add(li); } //如果 显示 和 Value 一直的话,则简单的这样就可以了 selFrom.Items.Add("原创"); selFrom.Items.Add("转载"); selFrom.Items.Add("翻译"); selFrom.Items.Add("资料整理"); //如果不在<asp:TextBox 中设置 TextMode 属性,也可以这样设置 //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%>呢称</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%>文章类别</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%>发表类别</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%>文章标题</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%>文章内容</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> 这里的这个程序很简单,但是他用到了 aspx 的一些特殊的属性,同时 由于 C# 是 区分大小写的 语言,所以大家在 从 VB 转到 C# 的时候 一定要非常的小心。 doSaveAdd.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){ 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="对不起,用户名称是 闭填项目"; return; } String strSQL; //首先校验用户和密码是否正确 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="对不起,这个用户不存在!"; return; } if(dbRead["UserPassword"].ToString()!=strPass){ showmsg.Text="对不起,用户名称和用户密码不匹配!"; return; } sqlCmd.ActiveConnection.Close(); //密码匹配,将用户输入的文本信息保存到数据库中 //因为是 演示 程序,所以就没有 检验 标题和内容 的合法性 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(); //虽然系统可以自动关闭这个Command对象,但是最好还是自己关闭一下 sqlCmd.ActiveConnection.Close(); } </script> <html> <head> <title>增加文章</title> <link rel="stylesheet" type="text/css" href="/doufu.css"> </head> <body> <asp:Label id=showmsg Text="恭喜,恭喜,您的文章已经添加到了数据库中!" runat=server /> </body> </html> 其实,这个 doSaveAdd.aspx 文件其实是 可以不用的,我们只要在 add.aspx 的 cmdDo 上处理他的OnClick 事件就可以了,程序是 一样的,给大家一种新的 选择,不是更好吗?
|