|
<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("<script>alert('此用户尚未注册!')</script>");<br> return false;<br> }<br> //判断用户名与密码是否一致<br> else if(!isBothExist)<br> {<br> Response.Write("<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("<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("<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"> <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> |
|