佩特来项目经验小集合(2)___组合查询存储过程,报错 "varchar JBID='' 转换成数据类型 int 时失败"

今天写一个组合查询的存储过程遇到这样一个问题:在将 varchar 值 ‘SELECT * FROM View_DLS_WXJD_Customer WHERE 1=1 and JBID =‘‘ 转换成数据类型 int 时失败。错误详情如图所看到的:

经百度:字符串变量和整型变量连接不能用+连接。

于是我採用cast()函数将DLSJB这个整型变量转换成字符串,这样问题就攻克了。

正确代码例如以下所看到的:

ALTER PROCEDURE [dbo].[Proc_SH_WXJDList]
	@DH varchar(50),       --单号
	@DLSJB int,    --代理商级别ID
	@DLSName varchar(100)   --代理商姓名
AS
BEGIN
Declare @sqlStr varchar(800)  --存储sql语句

	Set @sqlStr = 'SELECT * FROM View_DLS_WXJD_Customer WHERE 1=1'	--合成sql语句,不输入条件则选择所有

	 if(@DH!='')									--推断是写单号
		set @sqlStr = @sqlStr + ' and DH like ''%' + @DH + '%'''
	if(@DLSJB!= -1 )	                    --推断是否选择代理商级别
		set @sqlStr = @sqlStr + ' and JBID ='+''''+cast(@DLSJB as varchar(5))+''''
	if(@DLSName!='')										--推断是否选择代理商名
		set @sqlStr = @sqlStr + ' and DLSName like ''%' + @DLSName + '%'''
	EXEC (@sqlStr + 'ORDER BY DH DESC')
END

cast()是一个转换函数,跟我们在asp.net中使用的Convert函数一样。都是一种数据类型转换到还有一种数据类型。这篇文章恰恰是使用cast()函数使整型变量强制转换成字符串型,这样字符串型之间就能够使用+进行连接了。

佩特来项目经验小集合(2)___组合查询存储过程,报错 "varchar JBID='' 转换成数据类型 int 时失败"

时间: 2024-12-24 16:40:30

佩特来项目经验小集合(2)___组合查询存储过程,报错 "varchar JBID='' 转换成数据类型 int 时失败"的相关文章

佩特来项目经验小集合(2)___组合查询存储过程,报错 "varchar JBID='' 转换成数据类型 int 时失败"

今天写一个组合查询的存储过程遇到这样一个问题:在将 varchar 值 'SELECT * FROM View_DLS_WXJD_Customer WHERE 1=1 and JBID ='' 转换成数据类型 int 时失败.错误详情如图所示: 经百度:字符串变量和整型变量连接不能用+连接.于是我采用cast()函数将DLSJB这个整型变量转换成字符串,这样问题就解决了.正确代码如下所示: ALTER PROCEDURE [dbo].[Proc_SH_WXJDList] @DH varchar(

佩特来项目经验小集合(5)___系统流程设计

在佩特来项目设计中有一个流程设计问题,虽然.NET 和Java都有工作流,但是考虑到这个项目小,这里就简单的借用一点工作流的思想,设计了几张表,然后通过代码来控制流程.下面以"维修鉴定单业务流程"中的有实物流程为例,谈一下具体的流程设计.有实物的维修鉴定业务流程包含大致步骤:代理商填单.打印二维码.拆包.沟通转办.拆分.故障分析.各角色对费用进行审批.费用提交到费用池(统计各代理商金钱的地方).维修鉴定单流程见下图: 因为系统中不止这一个业务流程,所以系统流程设计的表有任务表(如维修鉴

佩特来项目经验小集合(3)___从多表统计金额汇总到一张表

来这个项目主要是佩特来公司各部门及各代理商使用的系统,这个系统其中的一下功能就是统计代理商费用.费用的统计放在了费用池(传统方式统计代理商费用就叫费用池)数据表中,代理商可以根据费用池的中的金额购买东西,费用池中的钱来自于代理商每次填写的维修鉴定单中. 下面看一下这部分的数据表结构: 下面的存储过程是汇总材料费及其他费用表的费用并汇总到费用池信息表的存储过程,这段代码有点长,加入了各种判断: -- ============================================= --

佩特来项目经验小集合(1)___js获取前一页面url中传来的值

页面跳转代码: src="AddCLFFour.aspx?ID=<%= Request.QueryString["ID"].ToString() %>"> ,通过" Request.QueryString["ID"].ToString()" 向AddCLFFour传参数ID,在AddCLFFour页面如何获取页面传过来的ID值呢? 下面提供三种方法,简单介绍如何实现js获取前一页面传来的值 1.最简单的方法 

佩特来项目经验小集合(4)___SQL SERVER的逆向工程,将数据库导入到PowerDesigner中

PD是一款不错的数据库设计工具,在佩特来这个项目中,起初,合作伙伴用PD大体设计了10张表,我们在项目开发的时候直接采用正向工程,将PD设计的数据库直接导入SQLServer中即可创建数据库及表结构,随着项目的开发,我们对表结构及表数量等进行了更改,为了保证数据库与PD图的一致性,这里我们采用逆向工程,将数据库导入到PD中,Oracle.SqlServer等数据库,都是可以采用逆向工程将数据库导入到PD中的.SqlServer逆向工程,首先需要建立一个数据库的连接,然后再进行逆向工程操作.下面简

佩特来项目经验小集合(6)___ASP.NET模板页的读取

在佩特来售后管理系统流程中,其中有一个节点是故障分析,也就是将发回来的整机进行故障分析,传统的方法是将每个整机的故障信息录入一个Excel表,表格Excel样式: 这里是将Excel转换成模板页,然后根据需要替换模板中的标签,将功能完整展示,下面介绍在这个功能在项目中实现步骤: 1.将Excel转换为网页 打开Excel文档,单击菜单栏中的"文件",找到"另存为",如图所示.在"另存为" 窗口的"保存类型",下拉菜单中找到&q

项目经验之:针对昨日FDO连接SDF文件报错,国个GIS论坛给出了一个思路.帮助我过关.

针对C#通过FDO连接SDF文件出现如下错误解决方案:  “外部组件发生异常” 在个遍国外论坛上看到这样一句话: 看到吗,跟我上面所发生的一个样错误的提示:那又如何解决呢,是什么原因呢?接下看专家的回复 可能是我们的FDO版本不合适,换成FDO3.3版本,好吧,我照着试了下,注意一定要将下面这几个DLL拷入你的编辑目录Bin\debug目录下\ 运行调试下看能否成功 看到了吗,通过. 总结什么原因呢??? 我后来又用FDO3.4,FDO3.5版本都试了下,但报了一个很特别的异常 “找不到指定的模

用户 &#39;IIS APPPOOL\**&#39; 登录失败的解决方案(项目部署到本地IIS上打开网页出现报错)

为开发方便-将项目部署到本地IIS上打开网页出现报错 1.打开IIS管理 2.点击应用池 3.找到你部署的网站名,右键“高级设置”——>“进程模型”——>“标识”修改为localsystem,点击“确定”. 步骤见下截图: 用户 'IIS APPPOOL\**' 登录失败的解决方案(项目部署到本地IIS上打开网页出现报错)

小程序返回上一级页面背景音乐报错 setBackgroundAudioState:fail title is nil!;

小程序初始化在onLoad的时候加载了一次背景音乐. 如果此时报错是title必传.如果没有 会报错一次 setBackgroundAudioState:fail title is nil!; 这个都知道 但同时我们可能有这样的一个情况 我再A页面. 播放了背景音乐 然后跳到B页面.修改了某些音乐参数 再调回A页面的时候报错了 解决: 在request的回调里面设置一次. 我尝试过在外面.在onShow设置.都没用,只有在success的回调的时候才会触发 原文地址:https://www.cn