posts - 291, comments - 34, trackbacks - 0, articles - 2
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 - ADO.net

摘要:千万数量级分页存储过程[转帖]Create PROCEDURE SP_Pagination/****************************************************************** 千万数量级分页存储过程 *****************************************************************参数说明:1.Tables :表名称,视图2.PrimaryKey :主关键字3.Sort :排序语句,不带Order By 比如:NewsID Desc,OrderRows Asc4.CurrentPage :当前页码 阅读全文

posted @ 2011-04-26 22:07 itcfj 阅读 (133) | 评论 (0) 编辑

摘要:ASP.NET中控制CSS隐藏textbox边框2009-11-25 17:401.隐藏上左右边框(填空式)body { font-size:12px; } .myline { border-right: #000000 0px solid; border-top #000000 0px solid; border-left: #000000 0px solid; border-bottom: #000000 1px solid }2.隐藏上下左右边框.tbx_txt { border-width: 0px 0px 0px 0px; overflow:hidden; }asp.net的多行Te 阅读全文

posted @ 2011-04-25 22:38 itcfj 阅读 (369) | 评论 (0) 编辑

摘要:Html代码:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">< 阅读全文

posted @ 2011-04-25 22:18 itcfj 阅读 (972) | 评论 (0) 编辑

摘要:这3种字符串数据类型是我们使用最多的,我们在数据库设计时到底该怎么使用了?首先我们先来分析3个数据类型的说明:1。charCHAR的长度是固定的,最长2000个字符。2。varchar和varchar2可以肯定的是oracle中目前是可以使用varchar数据类型的,但他们的区别我查了不少资料也没有找到一个准确的答案最常见的说话是说oracle中的varchar只是varchar2的别名也就是同义词。其次也有人认为varchar是最大长度为2000的可变字符串(和sqlserver中的varchar一致),而varchar2最大长度为4000。知道了他们的特点我们就来讨论下使用区别1.char 阅读全文

posted @ 2011-04-20 10:48 itcfj 阅读 (132) | 评论 (0) 编辑

摘要:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Data;using System.Data.SqlClient;public partial class test : System.Web.UI.Page{ protected override void OnLoad(EventArgs e) { //using (SqlConnection sqlc 阅读全文

posted @ 2011-04-09 22:16 itcfj 阅读 (740) | 评论 (0) 编辑

摘要:sql 代码:set nocount ongoalter procedure pro_insertStu( @stuid varchar(50), @stuname varchar(50))asbegin insert into StuInfo values (@stuid,@stuname); select @@ROWCOUNT select SCOPE_IDENTITY()--输出当前作用域(StuInfo)——个表的id select @@IDENTITY --输出第二(t2)——个表的id select @a=A ,@ from StuInfoend;alter trigger tri 阅读全文

posted @ 2011-04-09 21:50 itcfj 阅读 (166) | 评论 (0) 编辑

摘要:SCOPE_IDENTITY返回插入到同一作用域中的 IDENTITY 列内的最后一个IDENTITY 值。一个作用域就是一个模块——存储过程、触发器、函数或批处理。因此,如果两个语句处于同一个存储过程、函数或批处理中,则它们位于相同的作用域中。语法SCOPE_IDENTITY( )返回类型sql_variant注释SCOPE_IDENTITY、IDENT_CURRENT和 @@IDENTITY 在功能上相似,因为它们都返回插入到IDENTITY 列中的值。 IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回为任何会话和作用域中的特定表所生成 阅读全文

posted @ 2011-04-09 21:36 itcfj 阅读 (61) | 评论 (0) 编辑

摘要:ASP.NET Web 项目路径 .NET Framework 4 其他版本 使用 Web 项目中的资源时,通常必须指定资源的路径。 例如,您可以使用 URL 路径引用页面中的图像文件或网站中其他位置处的页面的 URL。 同样,Web 项目中的代码可以使用基于服务器的文件的物理文件路径对文件进行读写操作。 ASP.NET 提供用于引用资源并确定应用程序中的页面或其他资源的路径的方法。 指定资源的路径 许多情况下,页面中的元素或控件必须引用外部资源,如文件。 ASP.NET 支持引用外部资源的各种方法。 根据您使用的是客户端元素还是 Web 服务器控件,选择的引用方法将有所不同。 客户端元素 客 阅读全文

posted @ 2011-04-07 11:34 itcfj 阅读 (497) | 评论 (0) 编辑

摘要:直接返回history.back();或者history.go(-1); 回自动保存的C#代码中返回上级页面 this.ClientScript.RegisterStartupScript(GetType(), "alert", "alert('修改成功');history.go(-2)", true);javascript:history.go()和History.back()的区别<input type=button value=刷新 onclick="window.location.reload()"> 阅读全文

posted @ 2011-04-06 13:12 itcfj 阅读 (868) | 评论 (0) 编辑

摘要:实现方法: SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]); SqlDataAdapter da=new SqlDataAdapter("select * from tb1",conn); DataSet ds=new DataSet(); da.Fill(ds,"table1"); DataTable dt=ds.Tables["table1"]; string 阅读全文

posted @ 2011-03-29 08:44 itcfj 阅读 (123) | 评论 (0) 编辑

摘要:ASP.NET 下的资源文件使用 资源文件通常用在Winform中比较多,其实ASP.NET也可以使用资源文件实现多语言化。朋友托我帮他做个小站,2钟语言版本的,我想既然是小站那也得给它加点料。刚学了点资源文件的皮毛,那就用上了哈。示例网站如下http://www.donglongcf.cn.下面开始如何一步步建立多语言化网站。第一步:新建2个资源文件,其中命名为Resource.resx,Resource_En.resx代表英文。在界面上Aspx文件上,直接 1<%=Resources.Resource.String1%>控件中绑定 可以这样1<asp:LabelID=&q 阅读全文

posted @ 2011-03-28 22:33 itcfj 阅读 (160) | 评论 (0) 编辑

摘要:Bambook达人赛CSDN提交作品的来登记哦![意见反馈][官方博客] .net实现生成及打印条形码功能 收藏 .net实现生成及打印条形码功能,下面简单总结了自己的实现方法。 1.引用dll文件 将FLX.WebControls.dll文件拷贝到顶目的bin文件夹目录中; 2.配置web.config文件 在<system.web></system.web>之间添加如下代码 <httpHandlers> <add verb="*" path="FlxBarCode.axd" type="FLX.We 阅读全文

posted @ 2011-03-28 20:33 itcfj 阅读 (454) | 评论 (0) 编辑

摘要:ASP.NET 安全认证(一) ASP.NET 安全认证(一) 第一篇SSO只适合一个用户来登陆下面是枫哥的文章 去年看过了 不过觉得不错 还是要转来。作者:寒羽枫(cityhunter172)序代码写 N 久了,总想写得别的。这不,上头说在整合两个项目,做成单一登录(Single Sign On),也有人称之为“单点登录”。查阅相关文档后,终于实现了,现在把它拿出来与大家一起分享。或许大家会问:“这与标题不符呀?”别急,在下笔之前,我脑子里想到了我刚使用 Form 认证时遇到的一些问题,以及使用过程用到的一些技巧(实乃投机取巧是也 ^_^ )。偶打初中那时,语文水平就不怎么滴,考试常常作文写 阅读全文

posted @ 2011-03-23 10:30 itcfj 阅读 (66) | 评论 (0) 编辑

摘要:C# WinForm自定义控件整理(转载)C# WinForm开发系列收集的控件使用方面进行整理, 加入了一些文章, 不断补充充实, 完善这方面.基础 - 常用控件C# WinForm开发系列 - CheckBox/Button/Label/ProgressBarWinForm下CheckedListBox的数据绑定Winform 下无闪烁走马灯效果实现c#,winform,progressbar+labe,联动显示进度C# WinForm开发系列 – TextBox只能输入数字的TextBox---补充(C#)为 TextBox 控件增加一个限制最大字节数的属性c#,winform,验证输 阅读全文

posted @ 2011-03-21 12:02 itcfj 阅读 (893) | 评论 (0) 编辑

摘要:一、应用程序文件夹操作1、新建一个安装项目,起名“测试打包”这里要记住路径了,不然,打完了找不着安装包在哪里,可就说不过去了,呵呵!2、这里就会出现三个文件夹,不用多说一看就明白意思,点“应用程序文件夹-->添加-->文件夹这里的作用就是好管理,重启一下名字,这里我就叫它“测试打包系统”3、在“测试打包系统”文件夹上右键-->添加-->项目输出下一步:添加主输出一般这个就够了,当然你还有别的资源的话就要添加上去了!4、接下来在“应用程序文件夹”下依些建几个文件夹,我建了3个Images里我放的是图片,2个ICO和1个BMP,后面会用到!Unit放置卸载的文件,这里你记住 阅读全文

posted @ 2011-03-18 15:25 itcfj 阅读 (371) | 评论 (0) 编辑

摘要:突出显示某个单元格内容 要求:如果某个员工的起薪大于20000,就用红色的背景颜色突出显示:前台代码:View Code 1 <asp:GridView ID="GridView1" ShowFooter="true" runat="server" AutoGenerateColumns ="false" 2 style="border:solid 1px black" onrowdatabound="GridView1_RowDataBound"> 3 < 阅读全文

posted @ 2011-03-14 10:53 itcfj 阅读 (140) | 评论 (0) 编辑

摘要:C# codeSQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别, 所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。 随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。 SQL注入是从正常的W 阅读全文

posted @ 2011-03-13 11:37 itcfj 阅读 (192) | 评论 (0) 编辑

摘要:[Jquery] jquery事件处理bind(type, [data], fn)data, bind, jquery, typebind(type, [data], fn)返回值:jQuery概述为每个匹配元素的特定事件绑定事件处理函数。.bind() 方法是用于往文档上附加行为的主要方式。所有JavaScript事件对象,比如focus, mouseover, 和 resize,都是可以作为type参数传递进来的。 jQuery还提供了一些绑定这些标准事件类型的简单方式,比如.click()用于简化.bind('click')。一共有以下这些:blur, focus, fo 阅读全文

posted @ 2011-03-10 17:03 itcfj 阅读 (3141) | 评论 (0) 编辑

摘要:前台html代码:后台代码: 阅读全文

posted @ 2011-03-10 13:18 itcfj 阅读 (150) | 评论 (0) 编辑

摘要:.net 防止盗链 防止迅雷分类:C# 评论:0浏览:920.net 防止盗链 防止迅雷此程序需要有自己的服务器 或者能够操作 Iis的 IsAPI扩展我使用的方法就是访问 context.Request.UrlReferrer.Host; 就是访问访问本网站的上一个链接是什么是否是可以下载网站的Host 如果是可以下载 如果不是 不可以下载!新建 CeHandler 类 继承 IHttpHandler 接口 实现接口方法csharp代码 publicclassCeHandler:IHttpHandler{#regionIHttpHandler成员publicboolIsReusable{ge 阅读全文

posted @ 2011-03-07 13:08 itcfj 阅读 (296) | 评论 (1) 编辑

摘要:SCOPE_IDENTITY返回插入到同一作用域中的 IDENTITY 列内的最后一个 IDENTITY 值。一个作用域就是一个模块——存储过程、触发器、函数或批处理。因此,如果两个语句处于同一个存储过程、函数或批处理中,则它们位于相同的作用域中。IDENT_CURRENT返回为任何会话和任何作用域中的指定表最后生成的标识值。这个函数需要一个以表名为值的变量,也就是说虽然不受会话和作用域的限制,却会受到表的限制。@@IDENTITY返回最后插入的标识值。体会:加上事务处理,两个函数一个变量没有本质区别。不加事务处理两个函数一个变量受到其他会话、作用域的影响不一样。一直以来都是使用@@ident 阅读全文

posted @ 2011-03-03 20:48 itcfj 阅读 (769) | 评论 (0) 编辑

摘要:专栏作品树形结构在开发中的应用李洪根关键字:树、TreeView可参阅《CSDN开发高手》2003年第十二期概述TreeView是一个重要的控件,无论是在VB.NET,C# 还是VB、Delphi等各种语言中,都充当了导航器的作用。在实际工作中,很多情况下需要将TreeView与数据库进行连接,以填充其节点。在Windows Form和Web Form中,我们可以用TreeView来显示树形结构,如显示目录树、显示地区、分类显示商品等。可以说,在大部分软件的开发中,TreeView都是一个不可缺少的展示控件。因此,树形结构的设计就成了软件开发人员一个永恒的话题。树形结构的展示方式树形结构的展示 阅读全文

posted @ 2011-02-28 20:23 itcfj 阅读 (363) | 评论 (0) 编辑

摘要:<%@ WebHandler Language="C#" class="HandlerValidate_" %>using System;using System.Web;using System.Web.SessionState;using System.Drawing;public class HandlerValidate_ : IHttpHandler,IRequiresSessionState { public void ProcessRequest (HttpContext context) { string checkCode 阅读全文

posted @ 2011-02-25 16:44 itcfj 阅读 (156) | 评论 (0) 编辑

摘要:js代码: <script type="text/javascript"> String.prototype.trim = function() { return this.replace(/(^\s+)|\s+$/g, ""); } var x = 0; function myRefresh() { var httpRequest = new ActiveXObject("microsoft.xmlhttp"); httpRequest.open("GET", "sessionout.asp 阅读全文

posted @ 2011-02-25 15:56 itcfj 阅读 (456) | 评论 (0) 编辑

摘要:四行代码动态修改web.config文件appsettings配置节内容代码在VS2005测试顺利通过。Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath); //创建配置文件对象config.AppSettings.Settings[KEY].Value=VALUE; //设置KEY的值为VALUEconfig.Save(ConfigurationSaveMode.Modified); //保存设置Config 阅读全文

posted @ 2011-02-25 09:33 itcfj 阅读 (317) | 评论 (0) 编辑

摘要:前台:<table class="li1" cellspacing="1" cellpadding="2" border="0" style="width: 100%;" id="sort" oncontextmenu="return false; " onpaste=" return false;"> <thead> <tr> <td style="width: 3%; paddin 阅读全文

posted @ 2011-02-23 16:10 itcfj 阅读 (326) | 评论 (0) 编辑

摘要:GridView控件CommandArgument 绑定多个参数前台绑定: CommandArgument='<%# Eval("ReviewId")+","+Eval("isconfirm") %>'后台获取: string temp = e.CommandArgument.ToString(); string[] estr = e.CommandArgument.ToString().Split(','); int reviewid = Convert.ToInt32(estr[0]); 阅读全文

posted @ 2011-02-23 11:21 itcfj 阅读 (589) | 评论 (0) 编辑

摘要:获取母版页的相关内容有两种方法1 通过findcontrol找控件ID需要在此事件中~因为Page_load中时是先内容页加载然后才是母版页加载 protected void Page_LoadComplete(object sender, EventArgs e) { Label2.Text = "现在时间是" + (Master.FindControl("Label1") as Label).Text; if (Request.QueryString["id"] == "dy") { (Master.FindControl("Image1") as Image).ImageUrl = "~ 阅读全文

posted @ 2011-02-18 10:16 itcfj 阅读 (106) | 评论 (0) 编辑

摘要:需要用到事务处理多条语句的情况,但我们还要防止语句中注入式攻击,所以写了这个方法,进行带参数的事务的处理。下面代码说明:  首先将一条语句的参数放在结构sttSqlParameterList中,这样便于知道参数名及其对应值。  在将语句及参数列表放在结构sttSqlList中,这样便于知道SQL语句及其对应的参数列表。  最后调用ExecParameterTransaction()执行事务。其传入的是sttSqlList列表。[代码]用法代码:[代码] 阅读全文

posted @ 2011-02-13 14:17 itcfj 阅读 (114) | 评论 (0) 编辑

摘要:ADO.NET实用经验大总结刷新DataSet中的数据如果想用服务器上的更新值刷新DataSet中的值,就使用DataAdapter.Fill。如果有在DataTable上定义的主 键,DataAdapter.Fill会根据主键进行新行匹配,并且当更改到现有行时应用服务器上的值。即使刷新之前修改了这些数据,刷新行的 RowState仍被设置为Unchanged。注意,如果没有为DataTable定义主键,DataAdapter.Fill就用可能重复的主键值添加新行。如果想用来自服务器的当前值刷新表,并同时保留对表中的行所做的任何更改,必须首先用DataAdapter.Fill填充表,并填充一个 阅读全文

posted @ 2011-01-01 22:47 itcfj 阅读 (127) | 评论 (0) 编辑

摘要:总的考虑方向1) 根据数据使用的方式来设计数据访问层 http://www.mscto.com2) 缓存数据,避免不必要的操作 3) 使用服务帐户进行连接 软件开发网 4) 必要时连接,尽早释放 5) 关闭可关闭的资源 http://www.mscto.com 6) 减少往返 7) 仅返回需要的数据 8) 选择适当的事务类型 9) 使用存储过程 http://www.mscto.com 根据性能、可维护性、及实现难度来决定跨层数据传递的方式 2 具体实现 软件开发网 1)选用合适的Data Provider应尽量使用专用的Data Provider,下面是一个性能比较表 由上图中可以看出Sql 阅读全文

posted @ 2011-01-01 22:46 itcfj 阅读 (222) | 评论 (0) 编辑

摘要:UrlRewritingNet 完美实现 ASP.NET 2.0 中的URL重写(映射)URL重写好处有很多,如有利于SEO、便于记忆、隐藏真实路径使安全性提高、便于更新等等。本文概要描述了各种URL重写的实现。ASP.NET 2.0 中实现URL重写有很多方法,如:Global.asax中捕获用Application_BeginRequest请求,再用HttpContext类的Rewrite方法或Server.Transfer方法实现重写;自己实现IHttpModule实现重写;还有的利用服务器的404错误引导到新的页面实现重写;最后就是用组件实现重写(基本原理大多也是实现IHttpModu 阅读全文

posted @ 2010-12-21 10:38 itcfj 阅读 (680) | 评论 (0) 编辑

摘要:public class DataTableToJson { /// /// 把DataTable 转换为json格式数据,以方便JavaScript接受 /// /// datatable 对象 /// string public string GetJsonData(DataTable dt) { if (dt != null) { StringBuilder html = new StringBuilder(); html .Append("["); for 阅读全文

posted @ 2010-12-20 09:44 itcfj 阅读 (331) | 评论 (0) 编辑

摘要:使用连接池王然 微软认证讲师 wangran@itgoldenbridge.com 点击添加MSN机器人小新 为您收听下载MSDN中文网络广播课程加油助力! 本次课程内容包括 ? 连接池 ? 使用连接池 ? 管理连接池 ? 使用事务 ? 监视连接池 收听本次课程需具备的条件 ? 熟悉基本的 ADO.NET 连接 ? 熟悉 .NET 数据库应用开发 Level 300 连接池的概念 ? 连接池是一个进程 ? 该进程保存连接并使其处于活动状态,使 连接可以被重复使用 如果没有连接池 ? 连接到数据源 - 建立物理通道(例如套接字或命名管道) - 与服务器进行初次握手 分析连接字符串信息 - 由服 阅读全文

posted @ 2010-12-07 20:33 itcfj 阅读 (294) | 评论 (0) 编辑

摘要:处理连接字符串的安全性本次课程内容包括 ? 数据库安全性 ? 定义连接字符串 ? 防止注入式攻击 ? 存储连接字符串 ? 加密连接字符串 ? 受保护的配置 议程 ? 数据库安全性 ? 定义连接字符串 ? 防止注入式攻击 ? 存储连接字符串 ? 加密连接字符串 ? 受保护的配置 数据库安全性 ? 尽量使用 Windows 身份验证而不是 SQL Server 验证 - 安全容易管理 不需要在连接字符串中设置用户名和密码 - 可以通过密码策略保证安全 - 密码不会通过明文在网络中传递 集成 Windows 身份验证 提供程序语法Integrated Security=true; SqlClie 阅读全文

posted @ 2010-12-07 20:29 itcfj 阅读 (182) | 评论 (0) 编辑

摘要:public class JVMTest { public static void main(String[] args) { System.out.println("aa:"+ aa()); } public static int aa() { int a = 1; int b = 10; try { System.out.println("abc"); return a; } finally ... 阅读全文

posted @ 2010-11-23 22:22 itcfj 阅读 (206) | 评论 (0) 编辑

摘要:asp.net2.0 + sqlserver2005 数据依赖缓存 Asp.net 2.0 提供了一个新的数据缓存功能,就是利用sql server2005 的异步通知功能来实现缓存1.首先在sqlserver2005 中创建一个test的数据库.添加一个 employee的数据库表.1CREATETABLE[dbo].[employee](2[id][int]IDENTITY(1,1)NOTNU... 阅读全文

posted @ 2010-11-12 22:22 itcfj 阅读 (107) | 评论 (0) 编辑

摘要:ADO.NET 中DataTable中加载数据又两种方法(一)ADO.NET 中DataTable中加载数据又两种方法:第一种//使用fill方法填充DataTableprivate void useDataTableByFill() { SqlConnection myConnection = newSqlConnection(ConfigurationManager.ConnectionS... 阅读全文

posted @ 2010-11-12 22:08 itcfj 阅读 (1178) | 评论 (0) 编辑

摘要:using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Drawing;using System.Web;using System.Web.SessionState;using System.Web.UI;using System.Web.UI.WebContr... 阅读全文

posted @ 2010-11-12 21:00 itcfj 阅读 (89) | 评论 (0) 编辑

摘要:using (SqlConnection sqlCon=new SqlConnection (ConStr)) { SqlDataAdapter sda = new SqlDataAdapter("SELECT * FROM tb2 t",sqlCon); // DataSet ds = new DataSet(); DataTable dt = new DataTable(); //ds.E... 阅读全文

posted @ 2010-11-11 20:41 itcfj 阅读 (127) | 评论 (0) 编辑

摘要:使用SqlBulkCopy类加载其他源数据到SQL表MSDN摘要:MicrosoftSQL Server 提供一个称为 bcp 的流行的命令提示符实用工具,用于将数据从一个表移动到另一个表(表既可以在同一个服务器上,也可以在不同服务器上)。SqlBulkCopy 类允许编写提供类似功能的托管代码解决方案。还有其他将数据加载到SQL Server 表的方法(例如 INSERT 语句),但相比之下 S... 阅读全文

posted @ 2010-11-11 20:39 itcfj 阅读 (161) | 评论 (0) 编辑

摘要:使用 DataAdapter 执行批量更新2006-04-29 22:06 by Clingingboy, 1461 visits, 网摘,收藏,编辑 摘自MSDN: 在以前版本的 ADO.NET 中,使用 DataSet 中的更改来更新数据库时,DataAdapter 的 Update 方法每次更新数据库的一行。因为该方法循环访问指定 DataTable 中的行,所以,会检查每个 DataRo... 阅读全文

posted @ 2010-11-11 20:38 itcfj 阅读 (1765) | 评论 (0) 编辑

摘要:这是我很早以前看过的微软的一篇文章,最近,一些网友问的问题很多理论都在里面,所以,整理一下放在这里,大家可以参考一下。简介本文为您提供了在 Microsoft ADO.NET 应用程序中实现和获得最佳性能、可伸缩性以及功能的最佳解决方案;同时也讲述了使用 ADO.NET 中可用对象的最佳实践;并提出一些有助于优化 ADO.NET 应用程序设计的建议。本文包含: •有关 .NET 框架包含... 阅读全文

posted @ 2010-11-03 11:37 itcfj 阅读 (54) | 评论 (0) 编辑