多语言界面软件开发框架 - 初始化多语言时发生单引号错误(解决方案)
多语言界面软件开发框架 - 初始化多语言时发生单引号错误(解决方案)
程序初始化多语言时发生单引号错误,如下图: 错误原因: 前端传入单引号文本内容,导致SQL错误。 解决方案: 1. 替换系统数据库(CSFrameworkXX_System.dbo.usp_InitLanguage存储过程 SQL Code: ALTER PROCEDURE [dbo].[usp_InitLanguage] @LanType VARCHAR(10), @ObjectID NVARCHAR(500), @LanData NVARCHAR(500), @ItemType VARCHAR(20) AS BEGIN /********************************************************** 程序说明:初始化一条多语言资料 SELECT * FROM dbo.sys_Language usp_InitLanguage 'CHS','TEST','测试SSS','Control' usp_InitLanguage 'CHT','TEST','测试TTT','Message' usp_InitLanguage 'CHT','TE2ST','测''试''TTT','Message' ***********************************************************/ DECLARE @SQL NVARCHAR(MAX),@Value NVARCHAR(500) IF EXISTS(SELECT * FROM dbo.sys_Language WHERE ObjectID=@ObjectID) BEGIN IF @LanType='CHS' UPDATE sys_Language SET CHS=@LanData WHERE ObjectID=@ObjectID IF @LanType='CHT' UPDATE sys_Language SET CHT=@LanData WHERE ObjectID=@ObjectID IF @LanType='ENG' UPDATE sys_Language SET ENG=@LanData WHERE ObjectID=@ObjectID IF @LanType='VN' UPDATE sys_Language SET VN=@LanData WHERE ObjectID=@ObjectID END ELSE BEGIN IF @LanType='CHS' INSERT INTO sys_Language(ObjectID,ItemType,CHS,CreateTime) VALUES (@ObjectID,@ItemType,@LanData,GETDATE()) IF @LanType='CHT' INSERT INTO sys_Language(ObjectID,ItemType,CHT,CreateTime) VALUES (@ObjectID,@ItemType,@LanData,GETDATE()) IF @LanType='ENG' INSERT INTO sys_Language(ObjectID,ItemType,ENG,CreateTime) VALUES (@ObjectID,@ItemType,@LanData,GETDATE()) IF @LanType='VN' INSERT INTO sys_Language(ObjectID,ItemType,VN,CreateTime) VALUES (@ObjectID,@ItemType,@LanData,GETDATE()) END END //来源:C/S框架网 | www.csframework.com | QQ:23404761 2. 修改LanDatabase.cs Get方法 C# Code: //将一个单引号变成两个(跟SQL语法是一样的). //所以在使用Select方法或DataView的时候,一定要注意把字符条件值的一个单引号改成两个单引号,执行 if (objectID.IndexOf("'") >= 0) objectID = objectID.Replace("'", "''"); DataRow[] rs = _languageData.Select("ObjectID='" + objectID + "'"); //来源:C/S框架网 | www.csframework.com | QQ:23404761 适应版本: CSFramework标准版V2.3 CSFramework旗舰版V5.0 扫一扫加微信
参考文档:
C#.Net CS开发框架实现多语言(C/S框架网) 软件开发框架的设计和选择 快速软件开发框架|C/S框架网钜献 开发框架多语言包Language.dll (支持简/繁/英三种语言) 基于C#.NET C/S架构的生产看板管理系统软件开发框架平台 基于C#.NET MES软件开发工具MES系统开发框架 .NET快速开发框架 - 常见快速软件开发平台和开发工具 【原创】进销存软件开发模板基于C/S架构快速开发框架C#+Winform+DevExpress .NET软件开发平台标准版V2.3 - 支持多语言(中文繁体、简体、英文、越南文) C# Winform软件快速开发框架|软件开发平台 - 界面多语言实现原理 C# Winform支持多语言界面切换的软件快速开发平台 C/S架构多语言界面UI框架软件开发框架(C#.NET+Winform+DEV+SQL) C/S快速开发框架多语言功能集成百度翻译接口(支持中文简体、繁体、英文、越南文) 基于C/S架构轻量级快速开发框架软件开发平台(C#+ADO.NET+EF) 软件开发框架 - Software Development Framework
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |