将varchar值'*'转换为数据类型int时转换失败。 [英] Conversion failed when converting the varchar value '*' to data type int.
本文介绍了将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屋!
查看全文