设为首页收藏本站language 语言切换
查看: 1340|回复: 0
收起左侧

用ASP.Net 实现网站新闻管理系统

[复制链接]
发表于 2010-2-25 10:23:18 | 显示全部楼层 |阅读模式
<p >本文详细叙述了一个"网站新闻管理系统"的设计思路、开发细节,并公开了程序源代码,在稍加修改的基础上,用户完全能够在极短时间内拥有自己的"网站新闻管理系统"! <p ><ccid_nobr><Strong>一、具有以下特点:</strong></ccid_nobr><p >1、可视性:对新闻的处理(包括发布、修改、删除)将立即在主页的对应栏目显示出来,达到"即时发布、即时见效"的功能;<p >2、功能完善:包括常见网站的新闻(消息)管理的各个方面:新闻发布、浏览、删除、修改、检索等各个方面;完整地实现了网站对即时新闻的管理要求;<p >3、操作简单、界面友好:完全控件式的页面布局,使你即便不熟悉文字录入,仍可以用拷贝+粘贴的方式录入新闻内容;许多选项包括新闻类别、来源部门等只需要点击鼠标就可以完成;另外,跟踪出现的提示信息也让用户随时清楚自己的操作情况。<p >4、代码少:新闻录入、更新两大功能使用了同一页面(Write.aspx);新闻浏览、查询输出两大功能也使用了同一页面(View.aspx),极大地减少了程序代码。<p >5、移植简单:针对不同的企业,只需要修改来源部门名称,就可以开发出适合本企业特点的网站新闻管理系统! <p ><ccid_nobr><Strong>二、开发细节及部分程序代码:</strong></ccid_nobr><p ><ccid_nobr><Strong>1、构建数据库、表结构</strong></ccid_nobr><p >使用sqllserver2000建立以下数据库jxdb,含以下两个数据表: <p >(1)、数据表News:包含的字段有:编号、姓名、标题,关键字,内容,发布日期,供稿部门和新闻类型,字段说明如下:<p ><ccid_nobr><table border="1" cellpadding="0" cellspacing="0"  bordercolor="#111111" width="550" ><tr><td>Id</td><td>编 号</td></tr><tr><td>Name</td><td>用户姓名</td></tr><tr><td>Title</td><td>标  题</td></tr><tr><td>Keywords</td><td>关键字</td></tr><tr><td>Type</td><td>类 型</td></tr><tr><td>Fromwhere</td><td>来源部门</td></tr><tr><td>Datetime</td><td>发布日期</td></tr></table></ccid_nobr><p >(用户可以根据需要增减)<p >(2)、数据表Reg:用于记录"注册用户"信息,包括用户名name、密码pwd、性别sex、部门dept等字段,它可以简化到只含两个字段:name和pwd。<p >字段说明如下:<p ><ccid_nobr><table border="1" cellpadding="0" cellspacing="0"  bordercolor="#111111" width="550" ><tr><td>name</td><td>用户名</td></tr><tr><td>pwd</td><td>密码</td></tr><tr><td>email</td><td>电子邮件</td></tr><tr><td>dept</td><td>所属部门</td></tr><tr><td>sex</td><td>性别</td></tr><tr><td>Tel</td><td>电话</td></tr></table></ccid_nobr><p ><ccid_nobr><Strong>2、程序实现:</strong></ccid_nobr><p >由于需要在页面之间传值,跟asp中一样,程序中使用了索引字符串传递参数,并在目标页面(一般通过target指定)中通过Request["索引串名"]取得参数值;另外,Visual C#中的静态(static)变量只属于类所有,声明类的实例并不改变它的值,所以在几个页面中也使用了全局静态变量来实现了更强大的功能,即任何页面(而不需要指定目标页面)可以通过类名取得该值(比如任何页面可以通过string id=Manage.Id取得类Manage 中静态变量Id的值)。<p >另外,为充分利用Visual Studio.Net集成开发环境的强大功能,程序中也多处用到了Asp.net的数据显示控件DataGrid、DataView等,对数据库的操作更是涉及到了Ado.net的各个方面,包括插入(insert),删除(delete),更新(updage)及检索(select)等,并尽可能用独立的代码来实现,以利于读者引用。<p >以下分析各页面的实现方法,并就其用到的主要事件/函数进行讲解,另外,打包程序中含有完整的程序代码,他们中有较完整的注释信息,相信读者容易看懂。<p ><ccid_nobr><strong>(1)、登录页面(Login.aspx):</strong></ccid_nobr><p >        系统将所有用户分为注册用户和过客两种:<p >  i.注册用户,有新闻录入权限、管理新闻权限。<p >  ii.过客用户,能够进入新闻录入也面,但不具有录入权限;不能进入管理中心。<p >主要事件/函数有:<p ><ccid_nobr><table width="550" border="1" cellspacing="0" cellpadding="0" bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center"><tr><td bgcolor="e6e6e6" class="code">             //IsRegUserOk函数:判断用户是否已经注册+密码是否正确<br>                public bool IsRegUserOk()<br>                 { <br>                        string name=TextBoxName.Text.Trim();<br>                         string pwd=TextBoxPassword.Text.Trim();<br>                         //建立/打开数据库连接<br>                         SqlConnection conn=new SqlConnection();<br>                         conn.ConnectionString="server=(local);uid=sa;pwd=;database=jxdb";<br>                         conn.Open();<br>                         //建立sql字符串<br>                         string sql="select * from reg where name='"+name+"'";<br>                         SqlDataReader dr;<br>                         SqlCommand cmd=new SqlCommand(sql,conn);<br>                         dr=cmd.ExecuteReader(); <br>                        //保留用户注册与否信息<br>                        bool isRegUserExist=dr.Read();<br>                         //关闭DataReader<br>                         dr.Close();<br>                         //取得用户名的密码<br>                         string sqlBoth="select * from reg where name='"+name+"'";<br>                         sqlBoth+="and pwd='"+pwd+"'";<br>                         SqlCommand cmdBoth=new SqlCommand(sqlBoth,conn);<br>                         SqlDataReader drBoth;<br>                         drBoth=cmdBoth.ExecuteReader();<br>                         //保留用户名+密码同时存在信息<br>                         bool isBothExist=drBoth.Read();<br>                         //关闭DataReader<br>                         drBoth.Close();<br>                         conn.Close();<br>                         //判断用户是否注册<br>                         if(!isRegUserExist)<br>                         {<br>                                 Response.Write("&lt;script>alert('此用户尚未注册!')</script>");<br>                                 return false;<br>                         }<br>                                 //判断用户名与密码是否一致<br>                         else if(!isBothExist)<br>                         {<br>                                 Response.Write("&lt;script>alert('用户名和密码不一致,不能进入!')</script>"); <br>                                return false;<br>                         }<br>                         else<br>                                 return true;<br>                 }<br>                 //IsExistNews函数:判断新闻表中是否仍存有此用户发布过的新闻<br>                 public bool IsExistNews()<br>                 {<br>                         SqlConnection conn=new SqlConnection();<br>                         conn.ConnectionString="server=(local);uid=sa;pwd=;database=jxdb";<br>                         conn.Open();<br>                         name=TextBoxName.Text.Trim();<br>                         //新闻表中是否存在此用户<br>                         string sql="select * from news where Name='"+name+"'";<br>                         DataSet ds=new DataSet();<br>                         SqlDataAdapter da=new SqlDataAdapter(sql,conn);<br>                         da.Fill(ds,"list");<br>                         //取得新闻行数<br>                         int count=ds.Tables["list"].Rows.Count;<br>                         //该用户是否发布过新闻<br>                         if(count==0)<br>                                 return false;<br>                         else <br>                                return true;<br>                         conn.Close();<br>                 }    </td></tr></table></ccid_nobr><p ><ccid_nobr><Strong> (2)、录入页面(Write.aspx):</strong></ccid_nobr><p ><ccid_nobr><center><img  src="http://www.hh010.com/upload_files/article/244/9_wjflbe13456.gif"></center></ccid_nobr><p >"注册用户"录入一条新闻所需要的内容,包含标题、关键字、类型、来源部门、发布日期等,同时从登录页面Login.aspx得到用户名,这些信息将被写入数据库中保存。此页面也被用作编辑状态下的"更新"页面,这时,它将根据取得的Title字段值对页面控件初始化。主要事件/函数有:        <p ><ccid_nobr><table width="550" border="1" cellspacing="0" cellpadding="0" bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center"><tr><td bgcolor="e6e6e6" class="code">     //InsertDB_news()函数:插入一条新闻<br>                public void InsertDB_news()<br>                 {<br>                         //取得类Login中静态变量name的值<br>                         string name=Login.name.Trim();<br>                         //建立并打开数据库连接<br>                         SqlConnection conn=new SqlConnection();<br>                         conn.ConnectionString="server=(local);uid=sa;pwd=;database=jxdb";<br>                         conn.Open();<br>                         //取得编号Id的最大值,然后递增<br>                         string sql="select max(Id) as id from news";<br>                         //建立数据集<br>                         DataSet ds=new DataSet();<br>                         SqlDataAdapter da=new SqlDataAdapter(sql,conn); <br>                        da.Fill(ds,"list");<br>                        //声明DataTable<br>                        DataTable dt;<br>                         dt=ds.Tables["list"]; <br>                        DataRow dr=dt.NewRow();<br>                         dr=dt.Rows[0];<br>                         DataColumn dc;<br>                         dc=dt.Columns[0];<br>                         //最大Id只有一行,取得0行0列的值<br>                         string s1=dr[dc].ToString();<br>                         //如果此数据库为空<br>                         if(s1.Trim()=="")<br>                                 s1="0"; <br>                        //得到Id+1值<br>                        int id=Int32.Parse(s1)+1;<br>                         //sql语句<br>                         sql="insert into news values(@id,@name,@title,@keywords,@type,@fromwhere,@content,@datetime)";<br>                         SqlCommand cmd=new SqlCommand(sql,conn);<br>                         //Id字段<br>                         cmd.Parameters.Add(new SqlParameter("@id",SqlDbType.Int,4));<br>                         cmd.Parameters["@id"].Value =id;<br>                         //Name字段<br>                         cmd.Parameters.Add(new SqlParameter("@name",SqlDbType.Char,10));<br>                         cmd.Parameters["@name"].Value=Login.name;<br>                         //Title字段<br>                         cmd.Parameters.Add(new SqlParameter("@title",SqlDbType.Char,20));<br>                         cmd.Parameters["@title"].Value =TextBoxTitle.Text;<br>                         //Keywords字段<br>                         cmd.Parameters.Add(new SqlParameter("@keywords",SqlDbType.Char,20));<br>                         cmd.Parameters["@keywords"].Value =TextBoxKeywords.Text;<br>                         //Type字段<br>                         cmd.Parameters.Add(new SqlParameter("@type",SqlDbType.Char,10));<br>                         cmd.Parameters["@type"].Value =DropDownListType.SelectedItem.Text;<br>                         //Fromwhere字段<br>                         cmd.Parameters.Add(new SqlParameter("@fromwhere",SqlDbType.Char,10));<br>                         cmd.Parameters["@fromwhere"].Value =DropDownListFromwhere.SelectedItem.Text;<br>                         //Content字段<br>                         string txt=TextBoxContent.Text;<br>                         cmd.Parameters.Add(new SqlParameter("@content",SqlDbType.Char,500));<br>                         cmd.Parameters["@content"].Value =txt; <br>                        //Datetime字段<br>                        string date;<br>                         //如果选择了"当前日期"项<br>                         if(RadioButtonListDate.SelectedIndex==0)<br>                                 date=DateTime.Now.ToShortDateString();<br>                         //否则,使用"日历选择"的日期<br>                         else<br>                                 date=TextBoxCalendar.Text;<br>                         cmd.Parameters.Add(new SqlParameter("@datetime",SqlDbType.Char,20));<br>                         cmd.Parameters["@datetime"].Value =date;<br>                         //执行<br>                         cmd.ExecuteNonQuery();<br>                         conn.Close();<br>                 }<br> //IdToPageInit()函数:isFirst、getId值判断如何对页面初始化<br>         //由于此页面对应两种状态:新闻录入和新闻更新状态,前者需要页面保持空白<br>         //后者却需要填充数据库中得到的内容,这一功能通过类Login中静态变量isFirst来实现。<br>                 public void IdToPageInit()<br>                 {<br>         //取得类Login中静态变量isFirst值,它用以区别该页面该处于录入状态还是更新状态<br>                         //避免从首页"注册用户登录"时,页面控件使用从manage.aspx得到的Id值<br>                         if(Login.isFirst!="录入新闻页面")<br>                         {<br>                                 //如果write.aspx页面是因为在Manage.aspx页面中点击"编辑"按钮<br>                                 //而调用的,需要用从manage.aspx中得到的Id值作为查询条件<br>                                 //取得Manage类中静态变量getId的值,得到编号字段Id值<br>                                 if(Manage.getId!="")<br>                                 { <br>                                        //按钮状态<br>                                        ButtonUpdate.Enabled =true;<br>                                         ButtonSubmit.Enabled =false;<br>                                         SqlConnection conn=new SqlConnection();<br>                                         conn.ConnectionString="server=(local);uid=sa;pwd=;database=jxdb";<br>                                         conn.Open();<br>                                         //得到Id<br>                                         int id=Int32.Parse(Manage.getId);<br>                                         //sql字符串<br>                                         string sql="select * from news where Id='"+id+"'";<br>                                         DataSet ds=new DataSet();<br>                                         SqlDataAdapter da=new SqlDataAdapter(sql,conn);<br>                                         //建立数据集<br>                                         da.Fill(ds,"init");<br>                                         DataTable dt=ds.Tables["init"];<br>                                         //应该只有一行<br>                                         DataRow dr=dt.Rows[0];<br>                                         //标题字段Title<br>                                         string title=dr["Title"].ToString().Trim();<br>                                         TextBoxTitle.Text=title;<br>                                         //关键字Keywords<br>                                         string keywords=dr["Keywords"].ToString().Trim();<br>                                         TextBoxKeywords.Text=keywords;<br>                                         //类别Type<br>                                         string type=dr["Type"].ToString().Trim();<br>                                         DropDownListType.SelectedItem.Text=type;<br>                                         //来源Fromwhere<br>                                         string fromwhere=dr["Fromwhere"].ToString().Trim();<br>                                         DropDownListFromwhere.SelectedItem.Text=fromwhere;<br>                                         //内容Content<br>                                         string content=dr["Content"].ToString().Trim();<br>                                         TextBoxContent.Text=content;<br>                                 }<br>                         } <br>                }<br>                //"更新"按钮事件<br>                private void ButtonUpdate_Click(object sender, System.EventArgs e)<br>                 {<br>                         //应该判断修改后的标题是否已经存在<br>                         SqlConnection conn=new SqlConnection();<br>                         conn.ConnectionString="server=(local);uid=sa;pwd=;database=jxdb";<br>                         conn.Open();<br>                         //从manage.aspx页面的静态域中取得关键字段id值<br>                         int id=Int32.Parse(Manage.getId);<br>                         string sql="update news set Id=@id, Name=@name,Title=@title,Keywords=@keywords, Type=@type, Fromwhere=@fromwhere,Content=@content, Datetime=@datetime where Id='"+id+"'";<br>                         SqlCommand cmd=new SqlCommand(sql,conn); <br>                        //id字段<br>                        cmd.Parameters.Add(new SqlParameter("@id",SqlDbType.Int,4));<br>                         cmd.Parameters["@id"].Value =id;<br>                         //取得姓名值name <br>                        string name=Login.name.Trim();<br>                         cmd.Parameters.Add(new SqlParameter("@name",SqlDbType.Char,10));<br>                         cmd.Parameters["@name"].Value=name;<br>                         //标题字段title<br>                         string title=TextBoxTitle.Text.Trim();<br>                         cmd.Parameters.Add(new SqlParameter("@title",SqlDbType.Char,20));<br>                         cmd.Parameters["@title"].Value =title;<br>                         //关键字keywords<br>                         string keywords=TextBoxKeywords.Text.Trim();<br>                         cmd.Parameters.Add(new SqlParameter("@keywords",SqlDbType.Char,20));<br>                         cmd.Parameters["@keywords"].Value =keywords;<br>                         //类别type<br>                         string type=DropDownListType.SelectedItem.Text.Trim();<br>                         cmd.Parameters.Add(new SqlParameter("@type",SqlDbType.Char,10));<br>                         cmd.Parameters["@type"].Value =type;<br>                         //来源部门fromwhere<br>                         string fromwhere=DropDownListFromwhere.SelectedItem.Text.Trim();<br>                         cmd.Parameters.Add(new SqlParameter("@fromwhere",SqlDbType.Char,10));<br>                         cmd.Parameters["@fromwhere"].Value =fromwhere;<br>                         //内容content<br>                         string content=TextBoxContent.Text.Trim();<br>                         cmd.Parameters.Add(new SqlParameter("@content",SqlDbType.Char,500));<br>                         cmd.Parameters["@content"].Value =content; <br>                        //日期datetime<br>                        string datetime;<br>                         //如果选择了"当前日期"项<br>                         if(RadioButtonListDate.SelectedIndex==0)<br>                                 datetime=DateTime.Now.ToLongDateString().Trim();<br>                                 //否则,使用"日历选择"的日期<br>                         else<br>                                 datetime=TextBoxCalendar.Text.Trim();<br>                         cmd.Parameters.Add(new SqlParameter("@datetime",SqlDbType.Char,20));<br>                         cmd.Parameters["@datetime"].Value =datetime;<br>                         cmd.ExecuteNonQuery();<br>                         conn.Close();<br>                         //提示信息<br>                         string message="OK,更新成功!\\n";<br>                         message+="你可以继续发布或更新\\n";<br>                         message+="也可以返回调用处!!"; <br>                        Response.Write("&lt;script>alert('"+message+"')</script>");<br>                }    </td></tr></table></ccid_nobr><p ><ccid_nobr><Strong>(3)、管理中心页面(Manage.aspx):  </strong></ccid_nobr><p >分页罗列登录用户曾发布过且未删除的新闻信息,用户可以对该条新闻进行删除、修改。非新闻发布者不具有对该条新闻的处理权限,所以不同用户进入此页面将显示不同的内容。<p ><ccid_nobr><center><img  src="http://www.hh010.com/upload_files/article/244/9_extfym13457.gif"></center></ccid_nobr><p >主要事件/函数有:<p ><ccid_nobr><table width="550" border="1" cellspacing="0" cellpadding="0" bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center"><tr><td bgcolor="e6e6e6" class="code">      //编辑事件<br>                private void DataGridManage_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)<br>                 {<br>                         //取得类Login中静态变量isFirst值,以此对Write.aspx初始化<br>                         Login.isFirst="更新新闻页面";<br>                         //从被点击项的标志号得到关键字段Id的值<br>                         getId=DataGridManage.DataKeys[e.Item.ItemIndex].ToString(); <br>                        //绑定数据源<br>                        GridDataBind();//数据绑定与显示<br>                        //跳转到write.aspx,期望以Id值对页面进行初始化<br>                        Response.Redirect("Write.aspx");<br>                }<br>//删除记录事件<br>                private void DataGridManage_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)<br>                 {<br>                         SqlConnection conn=new SqlConnection();<br>                         conn.ConnectionString="server=(local);uid=sa;pwd=;database=jxdb";<br>                         conn.Open();<br>                         string sql="delete from news where Id=@id";<br>                         SqlCommand cmd=new SqlCommand(sql,conn);<br>                         //得到被点击项的关键字段id<br>                         int id=Int32.Parse(DataGridManage.DataKeys[(int)e.Item.ItemIndex].ToString());<br>                         cmd.Parameters.Add(new SqlParameter("@id",SqlDbType.Int,4));<br>                         cmd.Parameters["@id"].Value=id;<br>                         cmd.ExecuteNonQuery();<br>                         conn.Close();<br>                         GridDataBind();//数据绑定与显示<br>                         Response.Write("&lt;script>alert('删除成功!')</script>");<br>                 }    </td></tr></table></ccid_nobr><p >为避免用户误删除,客户端使用了一段JavaScript脚本,以即时信息提示用户的操作。<p ><ccid_nobr><table width="550" border="1" cellspacing="0" cellpadding="0" bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center"><tr><td bgcolor="e6e6e6" class="code">     &lt;script language="JavaScript"><br> function delete_confirm(e)<br>  {<br> if(event.srcElement.outerText=="删除") <br>event.returnValue=confirm("真的要删除吗?"); <br>}<br> document.onclick=delete_confirm;<br></script></td></tr></table></ccid_nobr><p ><ccid_nobr><Strong>(4)、浏览页面(View.aspx):</strong></ccid_nobr><p >分页罗列出网站所有新闻的信息,包括标题Title字段、类型Type字段、来源部门Fromwhere字段及发布日期Datetime字段,每条新闻的标题被做成了一个超链接,点击它们将跳转到新闻阅读页面(Read.aspx);此页面还提供了新闻查询功能,输入待查找的内容及选定分类信息可以快速地找到符合条件的新闻,并使用此页面输出查询结果。<p ><ccid_nobr><center><img  src="http://www.hh010.com/upload_files/article/244/9_zlouyv13458.gif"></center></ccid_nobr><p >主要事件/函数有:<p ><ccid_nobr><table width="550" border="1" cellspacing="0" cellpadding="0" bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center"><tr><td bgcolor="e6e6e6" class="code">             //Query()函数:实现查询功能<br>                public void Query()<br>                 {<br>                         //建立并打开数据库连接<br>                         SqlConnection conn=new SqlConnection();<br>                         conn.ConnectionString="server=(local);uid=sa;pwd=;database=jxdb";<br>                         conn.Open();<br>                         //得到待查找内容<br>                         string txt=TextBoxQuery.Text.Trim();<br>                         //搜索条件分类<br>                         string sql;<br>                         //初始化时sql串<br>                         if(txt=="")<br>                                 sql="select * from news";<br>                         //否则是因为点击按钮"查找"<br>                         else<br>                         {<br>                                 //得到搜索分类字符串<br>                                 string sort=DropDownListQuery.SelectedItem.Text.Trim();<br>                                 switch(sort)<br>                                 {<br>                                         case "标 题": <br>                                                sort="Title";<br>                                                break;<br>                                        case "来源部门":<br>                                         {<br>                                                 txt=DropDownListFromwhere.SelectedItem.Text.Trim();<br>                                                 //将选择填入待查内容文本框<br>                                                 TextBoxQuery.Text=txt.Trim();<br>                                                 sort="Fromwhere";<br>                                                 break;<br>                                         }<br>                                         case "关键字":<br>                                                 sort="Keywords"; <br>                                                break;<br>                                        case "类 型":<br>                                         { <br>                                                txt=DropDownListType.SelectedItem.Text.Trim();<br>                                                //将选择填入待查内容文本框<br>                                                TextBoxQuery.Text=txt;<br>                                                sort="Type";<br>                                                break;<br>                                        }<br>                                        default:<br>                                                sort="Title"; <br>                                                break;<br>                                }<br>                                //组合sql字符串<br>                                sql="select * from news where "+sort+" like "+"'%"+txt+"%'"; <br>                        }<br>                        DataSet ds=new DataSet();<br>                         SqlDataAdapter da=new SqlDataAdapter(sql,conn);<br>                         da.Fill(ds,"title");<br>                         DataViewTitle=ds.Tables["title"].DefaultView;<br>                         //得到符合条件的新闻条数<br>                         int count=ds.Tables["title"].Rows.Count;<br>                         string message="符合条件的新闻共"+count+"条!";<br>                         LabelQuery.Text=message;<br>                         //索引条件:按编号从高到底排列:后录入的新闻显示在前<br>                         DataViewTitle.Sort="Id desc";<br>                         DataGridTitle.DataSource=DataViewTitle;<br>                         //数据绑定<br>                         DataGridTitle.DataBind();<br>                         //关闭连接<br>                         conn.Close(); <br>                }    </td></tr></table></ccid_nobr><p ><ccid_nobr><Strong>(5)、阅读页面(Read.aspx):</strong></ccid_nobr><p >在其他页面中点击标题链接既进入该页面,此时,每条新闻的详细信息将被取出,包括内容(Content)、标题(Title)、关键字(Keywords)等,并按照相对固定的格式放置在页面的不同区域,所有新闻使用大致相同的页面布局,只是各字段对应的内容不同而已,另外,页面其它位置,可以动态放置其他元件,如网站标志logo、页面广告banner等链接图片,这样可以很容易地实现图文并茂的阅读效果。<p ><ccid_nobr><center><img  src="http://www.hh010.com/upload_files/article/244/9_tayfsq13459.gif"></center></ccid_nobr><p >主要事件函数有:<p ><ccid_nobr><table width="550" border="1" cellspacing="0" cellpadding="0" bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center"><tr><td bgcolor="e6e6e6" class="code">             //GetData()函数:读新闻,显示新闻中的相关字段值<br>                public void GetData()<br>                 {<br>                         //获得标题串title<br>                         string title=Request["title"].Trim();<br>                         //建立并打开数据库连接<br>                         SqlConnection conn=new SqlConnection();<br>                         conn.ConnectionString="server=(local);uid=sa;pwd=;database=jxdb";<br>                         conn.Open();<br>                         //得到sql字符串<br>                         string sql="select * from news where title='"+title+"'";<br>                         DataSet ds=new DataSet();<br>                         SqlDataAdapter da=new SqlDataAdapter(sql,conn);<br>                         da.Fill(ds,"info");<br>                         DataTable dt=new DataTable();<br>                         dt=ds.Tables["info"]; <br>                        DataRow dr=dt.Rows[0];<br>                         //内容content<br>                         DataColumn dcContent=dt.Columns[6];<br>                         string content=dr[dcContent].ToString().Trim();<br>                         content=content.Replace("\r\n","<br>");<br>                         content=content.Replace(" "," ");<br>                         LabelContent.Text=content;<br>                         //标题title<br>                         title=title.Replace("\r\n","<br>");<br>                         title=title.Replace(" "," ");<br>                         LabelTitle.Text=title;<br>                         //发布日期datetime<br>                         DataColumn dcDate=dt.Columns[7];<br>                         string date=dr[dcDate].ToString();<br>                         LabelDate.Text=date;<br>                         //关键字keywords<br>                         DataColumn dcKeywords=dt.Columns[3];<br>                         string keywords=dr[dcKeywords].ToString();<br>                         keywords=keywords.Replace("\r\n","<br>");<br>                         keywords=keywords.Replace(" "," ");<br>                         LabelKeywords.Text=keywords.Trim(); <br>                        //类别type<br>                        DataColumn dcType=dt.Columns[4];<br>                         string type=dr[dcType].ToString();<br>                         LabelType.Text=type; <br>                        //来自fromwhere<br>                        DataColumn dcFrom=dt.Columns[5];<br>                         string fromwhere=dr[dcFrom].ToString();<br>                         LabelFromwhere.Text=fromwhere; <br>                        //关闭连接<br>                        conn.Close();<br>                }    </td></tr></table></ccid_nobr><p ><ccid_nobr><strong>附 注:</strong></ccid_nobr><p >1、由于各自网站各异,本文没有提供主页上的显示效果,实现时一样是对数据库操作,读者应不难实现。<p >2、由于篇幅所限,本文没有提供出错检测机制,读者可自行添加。<p >3、<ccid_nobr>代码下载</ccid_nobr><p >程序在:Visual Studio.Net正式版、Sql Server 2000开发版上编制完成<p >该系统在局域网上稳定运行<p >本文作者:宋华,软件工程师,您可以通过<ccid_nobr>songh@tuha.net</ccid_nobr>同他联系。<p ><p >(责任编辑 <ccid_nobr>赵正北</ccid_nobr>)                                 <p align="center"></p></p>
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-5 00:56 , Processed in 0.084021 second(s), 23 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表