将varchar值'*'转换为数据类型int时转换失败。 [英] Conversion failed when converting the varchar value '*' to data type int.

查看:161
本文介绍了将varchar值'*'转换为数据类型int时转换失败。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这里是我的删除查询

  ALTER  程序 [dbo]。[sp_DeleteContactSubscriptionDetail] 

@ contactid as varchar 3
AS
BEGIN
set @ contactid = convert( int @ contactid
删除 来自 Contactsubscriptiondetail 其中 contactid = @ contactid

结束





这些是我的代码

 < span class =code-keyword> object  [,] objdel =  new   object  [ 1  2 ] 
{
{ @ contactid,Convert.ToInt32(Txtcontactid.Text)} };
DBTask.ExecuteQuery_SP( sp_DeleteContactSubscriptionDetail,objdel);



和调试时我收到错误将varchar值''''转换为数据类型int时转换失败。并且它没有删除

解决方案

问题是您已在过程中将参数声明为varchar,但将其作为整数值传递。

 {  @ contactid Convert.ToInt32( Txtcontactid.Text)}}; 
DBTask.ExecuteQuery_SP( sp_DeleteContactSubscriptionDetail,objdel);



如果你在这里进行转换,那么在程序中将参数声明为整数。



你在程序中使用...进行不必要的转换

  set  @ contactid = convert( int  @ contactid 





因此,声明为整数并尝试。

  @ contactid   as   INT  


Here these my query for deleting

ALTER PROCEDURE [dbo].[sp_DeleteContactSubscriptionDetail]

	@contactid as varchar(3)
AS
BEGIN
set @contactid=convert (int,@contactid)
	Delete from Contactsubscriptiondetail where contactid=@contactid
	
END



and these is my code

object[,] objdel = new object[1, 2]
        {
            {"@contactid",Convert.ToInt32(Txtcontactid.Text)}};
        DBTask.ExecuteQuery_SP("sp_DeleteContactSubscriptionDetail", objdel);


and while debugging i am getting error Conversion failed when converting the varchar value ''*'' to data type int. and it is not deleting

解决方案

The problem is you have declared the parameter as varchar in procedure, but passing it as a integer value.

{"@contactid",Convert.ToInt32(Txtcontactid.Text)}};
        DBTask.ExecuteQuery_SP("sp_DeleteContactSubscriptionDetail", objdel);


If you are converting here, then declare the parameter as integer in procedure.

You are unnecessarily converting again in procedure using...

set @contactid=convert (int, @contactid)



So, declare as integer and try.

@contactid as int


这篇关于将varchar值'*'转换为数据类型int时转换失败。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆