sql中报错:“从数据类型 varchar 转换为 bigint 时出错”解决

删除钉钉用户出错,userid:-1,错误消息:从数据类型 varchar 转换为 bigint 时出错。,错误详情:   at System.Data.SqlClient.SqlConnection.OnErrorSystem.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at System.Data.SqlClient.SqlDataReader.HasMoreRows()
   at System.Data.SqlClient.SqlDataReader.ReadInternal(Boolean setTimeout)
   at System.Data.Common.DataAdapter.FillLoadDataRow(SchemaMapping mapping)
   at System.Data.Common.DataAdapter.FillFromReader(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue)
   at System.Data.Common.DataAdapter.Fill(DataSet dataSet, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords)
   at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable)
   at cn.focusmedia.fum.data.SqlHelper.RunProcedure(String storedProcName, IDataParameter[] parameters, String tableName) in F:\xm\svn\FUM\Source\NetFocusDingDing\DingSyncMVC\cn.focusmedia.fum.data\SqlHelper.cs:line 523
   at cn.focusmedia.fum.data.DingDao.GetUserModelListToDelete() in F:\xm\svn\FUM\Source\NetFocusDingDing\DingSyncMVC\cn.focusmedia.fum.data\DingDao.cs:line 340
   at cn.focusmedia.fum.data.DingSync.deleteInvalidUser() in F:\xm\svn\FUM\Source\NetFocusDingDing\DingSyncMVC\cn.focusmedia.fum.data\DingSync.cs:line 220

查看报错信息,发先是sql中的报错,代码里面是使用存储过程编写,初步思考是由于字段的类型不同,但是赋值时没有进行转换导致的错误。

看一下原本的存储过程:
在这里插入图片描述
这里jobnumber为varchar类型,但是E_SN为bigint类型,发现就是因为在赋值时并没有进行转化。

改变后:
在这里插入图片描述
使用cast(E_SN as varchar)函数进行转换。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值