ASP.NET小型证券术语解释及翻译系统的设计与开发
摘 要
在系统设计上,综合各种翻译类型网站优缺点,设计出具有任何使用者都可添加术语信息的且只有管理员能够实现术语修改及删除等独特方式的术语查看管理系统。此方式能够使术语量快速增大,并且便于使用者及管理员操作,满足相互之间不断增长的需求,即使用者增加术语量,管理员管理以实现数据信息的合理管理及利用。在查看方式上,使用术语的第一个汉字的中文拼音首字母为索引,并分页显示,用户能够非常方便地找到所需术语名及对应的英、日文翻译。此外,系统还提供术语搜索,更加方便用户查询。管理方式和按首字母分页显示及搜索的查看方式为系统第二个特点。其次,应用Cascading style Sheets(简称CSS,层叠样式表)外部链接方式,界面(UI)较为精致。系统应用CSS自定义样式并在首页应用透明FLASH,具有操作简便、界面友好等特性。
关键词:计算机应用技术;ASP.net 2005;证券术语;解释及翻译;术语管理
3.1 系统功能结构设计
在系统需求分析的基础上,结合系统设计的目标,可将系统划分为4个功能模块:
- 首页:术语添加
- 术语一览:默认术语按ID顺序分页显示;页面上方点击术语中文拼音首字母可按首字母检索分页查看;页面中间提供输入术语名搜索方式查看术语。
- 术语管理:主要包括管理员登陆模块,对术语进行修改和删除操作。
- 其它模块:提供相关业务的服务,如资料下载等。
3.2 开发设计思想
系统开发设计思想有以下3点:
- 系统采用B/S结构,选用ASP.NET2005和SQL2000作为开发工具及开发环境进行系统的设计与开发。系统提供术语应准确全面,符合证券翻译及解释系统用户需求,并达到操作过程中的直观、方便、实用等要求。
- 系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于日后的补充和维护。
- 系统应具备数据库维护功能,及时根据用户需求进行术语的添加、删除、修改等操作。
5.1 公用模块及代码
- 定义数据库公用操作方法类DbHelperSQL,用以连接数据库,执行sql语句等数据库操作。
- 定义公共类Glossary,完成添加,修改,删除等操作。
- 定义公共验证类PageValidate。
5.2 首页界面及功能代码
首页为系统门户,是使用者对系统的第一印象,故需精心设计。根据对系统用户群的分析,设计出如下所示的首页界面如下图5所示:

图5 首页
首页中用户有点击添加术语信息的功能,中间运用透明FLASH代码将所制作的图片放为背景图,在代码中加入如下代码,将FLASH变为透明。
<param name="wmode" value="transparent" />
添加功能模块具有添加术语五项信息功能,在Glossary.cs中编写如下代码实现添加功能:
/// 增加一条数据
public int Add()
{
StringBuilder strSql=new StringBuilder();
strSql.Append("insert into Glossary(");
strSql.Append("cGlossaryName,cChineseSpell,cGlossaryEnglish,cGlossaryJapan,cGlossaryInterpret)");
strSql.Append(" values (");
strSql.Append("@cGlossaryName,@cChineseSpell,@cGlossaryEnglish,@cGlossaryJapan,@cGlossaryInterpret)");
SqlParameter[] parameters = {
new SqlParameter("@cGlossaryName", SqlDbType.NVarChar),
new SqlParameter("@cChineseSpell", SqlDbType.NVarChar),
new SqlParameter("@cGlossaryEnglish", SqlDbType.NVarChar),
new SqlParameter("@cGlossaryJapan", SqlDbType.NVarChar),
new SqlParameter("@cGlossaryInterpret", SqlDbType.NVarChar)};
parameters[0].Value = cGlossaryName;
parameters[1].Value = cChineseSpell;
parameters[2].Value = cGlossaryEnglish;
parameters[3].Value = cGlossaryJapan;
parameters[4].Value = cGlossaryInterpret;
DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
return ID;
}
Append方法将sql语句连接起来,整个的语句为
Insert into Glossary
(cGlossaryName,cChineseSpell,cGlossaryEnglish,cGlossaryJapan,cGlossaryInterpret)
Values (@cGlossaryName,@cChineseSpell,@cGlossaryEnglish,@cGlossaryJapan,@cGlossaryInterpret)
定义一个new SqlParameter,执行数据库公用方法DbHelperSQL.cs中定义的ExecuteSql完成与数据库连接,并执行SqlCommand语句,返回ID。
在ADD.cs中,代码如下
Glossary g = new Glossary();
g.cGlossaryName = PageValidate.Encode(this.txtName.Text);
g.cChineseSpell = PageValidate.Encode(this.txtChineseSpell.Text);
g.cGlossaryEnglish = PageValidate.Encode(this.txtEnglish.Text);
g.cGlossaryJapan = PageValidate.Encode(this.txtJapanese.Text);
g.cGlossaryInterpret = PageValidate.Encode(this.txtInterPret.Text);
g.Add();
Response.Write("<script>alert('添加成功');</script>");
将所要添加的术语信息通过PageValidate.Encode方法增加到数据库中,完成添加功能。
5.3 术语一览界面和主要代码
术语一览界面如下图6所示:

图6 术语一览
- 系统默认为按术语ID分页显示。
- 利用cChineseSpell字段,中文拼音首字母为S的演示结果如下图7所示:

图7 以S为索引分页显示
点击索引S,画面上出现以S为拼音开头的所有术语,分页显示,很容易找到所需术语名。
按术语中文拼音首字母检索浏览方式代码如下:
页面ViewAll.aspx中代码如下:
<td><a href="ViewAll.aspx?spell=A" class="fontview">A</a></td>
后台ViewAll.aspx.cs中代码:
if (Request["spell"] != null)
{
this.gvGlossary.DataSource = g.GetList(" cChineseSpell like '" + Request["spell"].ToString() + "%' order by ID asc");
this.gvGlossary.DataBind();
return;
}
this.gvGlossary.DataSource = g.GetList(" 1=1 order by ID asc");
this.gvGlossary.DataBind();
利用Request["spell"]与cChineseSpell比较,以ID的升序排列来检索分页显示。
- 搜索功能的实现代码如下:
if (Request["search"] != null)
{
this.gvGlossary.DataSource = g.GetList(" cGlossaryName like '"+Request["search"].ToString()+"%' order by ID asc");
this.gvGlossary.DataBind();
return;
}
以所输入的术语名与数据库中cGlossaryName比较,得出搜索结果。
5.4 管理模块
管理模块中首先为管理员登陆、管理员用户验证。输入用户名或密码为空时再label中显示红色提示语:“用户名和密码不能为空!”;当输入有误时在label中显示提示语“您输入的用户名或密码有误!请重新输入。”;清除按钮将账号和密码都清空,如下图8,图9所示:

图8 用户验证(1)

图9 用户验证(2)
当确定为系统管理员后页面将登录到术语管理模块,主要有管理员查看、修改和删除操作。界面如下图10所示:

图10 管理模块
查看操作与术语浏览操作相似,不再赘述。
修改页面如下图11所示:

图11 修改
点击修改成功时弹出“修改成功”提示语。
在Glossary.cs中代码如下:
public void Update(int id)
{
StringBuilder strSql=new StringBuilder();
strSql.Append("update Glossary set ");
strSql.Append("cGlossaryName=@cGlossaryName,");
strSql.Append("cChineseSpell=@cChineseSpell,");
strSql.Append("cGlossaryEnglish=@cGlossaryEnglish,");
strSql.Append("cGlossaryJapan=@cGlossaryJapan,");
strSql.Append("cGlossaryInterpret=@cGlossaryInterpret");
strSql.Append(" where ID=@ID" );
SqlParameter[] parameters = {
new SqlParameter("@ID",SqlDbType.Int),
new SqlParameter("@cGlossaryName", SqlDbType.NVarChar),
new SqlParameter("@cChineseSpell", SqlDbType.NVarChar),
new SqlParameter("@cGlossaryEnglish", SqlDbType.NVarChar),
new SqlParameter("@cGlossaryJapan", SqlDbType.NVarChar),
new SqlParameter("@cGlossaryInterpret", SqlDbType.NVarChar)};
parameters[0].Value = id;
parameters[1].Value = cGlossaryName;
parameters[2].Value = cChineseSpell;
parameters[3].Value = cGlossaryEnglish;
parameters[4].Value = cGlossaryJapan;
parameters[5].Value = cGlossaryInterpret;
DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
}
在修改页面Update.aspx.cs中代码如下
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Request["id"] != null)
{
Glossary g = new Glossary();
g.GetModel(int.Parse(Request["id"]));
this.txtName.Text = PageValidate.Decode(g.cGlossaryName);
this.txtChineseSpell.Text = PageValidate.Decode(g.cChineseSpell);
this.txtEnglish.Text = PageValidate.Decode(g.cGlossaryEnglish);
this.txtInterPret.Text = PageValidate.Decode(g.cGlossaryInterpret);
this.txtJapanese.Text = PageValidate.Decode(g.cGlossaryJapan);
}
}
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
if (Request["id"] != null)
{
Glossary g = new Glossary();
g.GetModel(int.Parse(Request["id"]));
g.cGlossaryName = PageValidate.Encode(this.txtName.Text);
g.cChineseSpell = PageValidate.Encode(this.txtChineseSpell.Text);
g.cGlossaryEnglish = PageValidate.Encode(this.txtEnglish.Text);
g.cGlossaryJapan = PageValidate.Encode(this.txtJapanese.Text);
g.cGlossaryInterpret = PageValidate.Encode(this.txtInterPret.Text);
g.Update(int.Parse(Request["id"]));
Response.Write("<script>alert('修改成功');</script>");
}
}
在PageLoad时用PageValidate.Decode方法获得数据库中原有数据项,然后修改后用PageValidate.Encode方法将修改后的数据项传到数据库中。此处注意必须将Update方法带上参数int id,然后才能修改数据库中数据项。
删除操作,在Glossary.cs中定义如下代码:
public void Delete(int ID)
{
StringBuilder strSql=new StringBuilder();
strSql.Append("delete from Glossary ");
strSql.Append("where ID=@ID" );
SqlParameter[] parameters = {
new SqlParameter("@ID", SqlDbType.Int,4) };
parameters[0].Value = ID;
DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
}
在Manage.aspx.cs中编写删除代码如下:
Glossary g = new Glossary();
g.Delete(int.Parse(this.gvGlossary.DataKeys[e.RowIndex].Value.ToString()));
Response.Write("<script>alert('删除成功');</script>");
bindALL();
点击删除时出现确认是否要删除,删除成功后显示删除成功提示语。
相关文章:
ASP.NET小型证券术语解释及翻译系统的设计与开发
摘 要 在系统设计上,综合各种翻译类型网站优缺点,设计出具有任何使用者都可添加术语信息的且只有管理员能够实现术语修改及删除等独特方式的术语查看管理系统。此方式能够使术语量快速增大,并且便于使用者及管理员操作,满足相互…...
硬件知识积累 音频插座的了解,看音频插座的原理图来了解音频插座的引脚。
1. 音频接口 音频插座是一种用于连接音频信号线路的电子元件,常见于音频设备(如音响、耳机、话筒等)中。它的主要作用是将电子信号转化为声音信号,以满足人们对于音乐、电影、游戏等方面的需求。 根据插头形状的不同,音…...
error LNK2001: 无法解析的外部符号 “__declspec(dllimport) public: __cdecl ......
运行程序时,报如上图所示错误,其中一条是: ReflectionProbe.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: __cdecl osg::Object::Object(bool)" (__imp_??0ObjectosgQEAA_NZ) 报这个错误一般是因为…...
邮箱Webhook API发送邮件的性能怎么优化?
邮箱Webhook API发送邮件的步骤?如何用邮箱API发信? 随着业务规模的扩大,如何高效地通过邮箱Webhook API发送邮件,成为了许多企业面临的关键问题。下面,AokSend将探讨一些优化邮箱Webhook API发送邮件性能的方法。 邮…...
并发编程实现
一、并行编程 1、Parallel 类 Parallel类是System.Threading.Tasks命名空间中的一个重要类,它提供数据并行和任务并行的高级抽象。 For和ForEach Parallel类下的For和ForEach对应着普通的循环和遍历(普通的for和foreach),但执行时会尝试在多个线程上…...
基于EBAZ4205矿板的图像处理:12图像二值化(阈值可调)
基于EBAZ4205矿板的图像处理:12图像二值化(阈值可调) 我的项目是基于EBAZ4205矿板的阈值可调的图像阈值二值化处理,可以通过按键调整二值化的阈值,key1为阈值加1,key4为阈值减1,key2为阈值加10,key5为阈值…...
人大金仓数据库报com.kingbase8.util.KSQLException: 致命错误: 用户 “SYSTEM“ Password 认证失败
com.kingbase8.util.KSQLException: 致命错误: 用户 “SYSTEM” Password 认证失败 解决办法: 问题在于用户权限只不足,相关配置文件在一般在 /data/sys hba.conf,修改IPV4 local connections选项中的改为trust。...
文件加密软件哪个好?文件加密软件排行榜前十名(好用软件推荐)
文件加密软件哪个好?这是许多个人和企业用户在面临数据保护需求时所关心的问题。随着数字化时代的推进,数据安全问题日益凸显,文件加密软件成为了保护数据安全的重要手段。本文将为您介绍当前市场上排名前十的文件加密软件,帮助您…...
Netty的第一个简单Demo实现
目录 说明需求ClientServer写法总结 实现运行 说明 Netty 的一个练习,使用 Netty 连通 服务端 和 客户端,进行基本的通信。 需求 Client 连接服务端成功后,打印连接成功给服务端发送消息HelloServer Server 客户端连接成功后࿰…...
K8S 哲学 - 服务发现 services
apiVersion: v1 kind: Service metadata:name: deploy-servicelabels:app: deploy-service spec: ports: - port: 80targetPort: 80name: deploy-service-podselector: app: deploy-podtype: NodePort service 的 endPoint (ep) 主机端口分配方式 两…...
Springboot工程创建
目录 一、步骤 二、遇到的问题及解决方案 一、步骤 打开idea,点击文件 ->新建 ->新模块 选择Spring Initializr,并设置相关信息。其中组为域名,如果没有公司,可以默认com.example。点击下一步 蓝色方框部分需要去掉,软件包…...
日本站群服务器的优点以及适合该服务器的业务类型?
日本站群服务器的优点以及适合该服务器的业务类型? 日本站群服务器是指位于日本地区的多个网站共享同一台服务器的架构。这种服务器架构有着诸多优点,使其成为许多企业和网站管理员的首选。以下是日本站群服务器的优点以及适合该服务器的业务类型的分析࿱…...
堆的应用2——TOPK问题
TOPK问题 TOP-K问题:即求数据结合中前K个最大的元素或者最小的元素,一般情况下数据量都比较大。 比如:专业前10名、世界500强、富豪榜、游戏中前100的活跃玩家等。 情况1——数据量小 对于Top-K问题,能想到的最简单直接的方式就…...
leetcode-5. 最长回文子串
题目描述 给你一个字符串 s,找到 s 中最长的回文子串。 如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。 示例 1: 输入:s "babad" 输出:"bab" 解释:"aba"…...
【Flask 系统教程 1】入门及配置
当你开始学习 Flask 时,了解如何进行基本的配置是非常重要的。Flask 是一个简单而灵活的 Python Web 框架,它允许你快速构建 Web 应用程序,并且易于学习。在这篇博客中,我将介绍如何从零开始进行 Flask 的基础配置,适合…...
石家庄河北银行的
有些时候河北石家庄这边的甲方客户人员就是太苛刻了,尤其是银行业 比如河北银行的信息部的卢斌,兰州人,这个人的人品极度恶劣,对乙方的外包人员特别苛刻,像个大爷一样。自己什么都不会,连sql 都不会写&…...
【CCNP ENCOR OCG】CHAPTER 2》Spanning Tree Protocol
目录 “Do I Know This Already?” Quiz Foundation Topics Spanning Tree Protocol Fundamentals 802.1D Port States Spanning Tree Path Cost Root Bridge Election Locating Root Ports Locating Blocked Designated Switch Ports Verification of VLANs on Trun…...
docker无法映射/挂载根目录
docker无法映射(挂载)根目录下的文件夹只能映射家目录 最近想要使用nas-tools做做刮削,电影存在一个机械磁盘里,机械磁盘被挂载到/data1下,发现一个很奇怪的问题,docker只能挂载成功home目录下的文件夹&am…...
C++中不要重新定义继承而来的non-virtual函数
在 C 中,重定义继承而来的 non-virtual(非虚)函数通常是不推荐的,原因如下: 隐藏父类的实现:如果在派生类中重定义了一个非虚函数,这将隐藏父类中具有相同名称和参数的函数。这意味着即使通过基…...
C++ 对象型参数和返回值
对象型参数和返回值 1.对象型类型作为函数的参数2.对象型参数作为函数的返回值 1.对象型类型作为函数的参数 使用对象类型作为函数的参数或者返回值,可能会产生一些不必要的中间对象 例子: // 使用对象类型作为函数的参数 void test1(Car car) {}完整代…...
告别零散烧录:一个脚本搞定Petalinux 2020.1 ZynqMP QSPI全镜像生成与烧写
告别零散烧录:Petalinux 2020.1 ZynqMP QSPI全镜像自动化生成实战 在嵌入式Linux开发中,QSPI Flash烧录往往是最后一道工序,也是最容易出错的环节之一。传统分步烧录方式不仅效率低下,还容易因地址偏移计算错误导致启动失败。本文…...
从智能电池到服务器风扇:手把手解析SMBus的15种通信协议与应用实例
从智能电池到服务器风扇:手把手解析SMBus的15种通信协议与应用实例 当你在笔记本电脑上看到剩余电量精确到1%时,或是服务器机柜里的风扇根据温度自动调节转速时,背后都有一个低调的"通信专家"在默默工作——它就是SMBus࿰…...
智能排障:借助快马AI构建Vivado安装问题自动诊断与修复助手
作为一名FPGA开发者,Vivado安装过程中的各种报错简直是家常便饭。每次遇到新问题都要花大量时间搜索解决方案,效率实在太低。最近尝试用InsCode(快马)平台的AI能力搭建了一个智能诊断工具,效果出乎意料的好,分享下具体实现思路。 …...
蓝桥杯c++新手如何起步?快马生成带详解的入门代码示例
作为一名刚接触蓝桥杯C竞赛的新手,最头疼的往往不是算法本身,而是连基础语法都还没摸透就要面对复杂题目。最近在准备比赛时,我发现用传统方式学习效率很低——手动敲完代码后,经常因为不熟悉语法细节卡壳,调试半天也找…...
Xcode实战:用SwiftUI快速构建一个可交互的卡片视图(含SF Symbols使用技巧)
Xcode实战:用SwiftUI快速构建一个可交互的卡片视图(含SF Symbols使用技巧) 当你第一次看到那些精美的卡片式UI时,是否好奇它们是如何被构建出来的?在移动应用设计中,卡片视图因其清晰的视觉层次和自然的交互…...
OpenClaw 的检索增强中,向量数据库的索引类型(HNSW、IVF)如何选择?
在讨论时序推理时,OpenClaw 对时间关系的建模方式,其实可以从一个很直观的角度去理解——它并不只是简单地给事件贴上时间标签,而是尝试去捕捉事件之间那种动态的、有时甚至是隐含的依赖关系。 想象一下日常生活中整理相册的过程。如果只是按…...
高并发场景下的FUTURE POLICE服务架构设计
高并发场景下的FUTURE POLICE服务架构设计 最近和几个做智能语音项目的朋友聊天,大家普遍遇到一个头疼的问题:模型效果不错,但用户一多,服务就卡顿甚至崩溃。特别是像FUTURE POLICE这类语音合成模型,生成一段高质量的…...
PP-DocLayoutV3跨平台文档处理方案:兼容Windows、Linux与macOS
PP-DocLayoutV3跨平台文档处理方案:兼容Windows、Linux与macOS 最近在折腾文档智能处理,发现了一个挺有意思的模型服务——PP-DocLayoutV3。简单来说,它能帮你自动分析文档图片,把里面的文字、表格、图片、标题什么的,…...
无需苹果硬件:用开源工具打造高效macOS虚拟机搭建方案
无需苹果硬件:用开源工具打造高效macOS虚拟机搭建方案 【免费下载链接】OneClick-macOS-Simple-KVM Tools to set up a easy, quick macOS VM in QEMU, accelerated by KVM. Works on Linux AND Windows. 项目地址: https://gitcode.com/gh_mirrors/on/OneClick-m…...
一U多系统终极方案:用Ventoy管理ISO镜像+VMware验证的完整工作流
一U多系统终极方案:用Ventoy管理ISO镜像与VMware验证的完整工作流 在数字工具日益复杂的今天,系统管理员和技术爱好者常面临一个经典难题:如何高效管理多个操作系统镜像并确保其启动兼容性。传统方法需要反复格式化U盘或携带多个启动设备&am…...
