C# varchar值的转换溢出了填充未定义数据表的int列
我有个错误 varchar值“287201414153026341”的转换溢出了int列 但是我在sql中所做的任何事情都没有试图将varchar列中的值转换为intC# varchar值的转换溢出了填充未定义数据表的int列,c#,asp.net,sql-server,C#,Asp.net,Sql Server,我有个错误 varchar值“287201414153026341”的转换溢出了int列 但是我在sql中所做的任何事情都没有试图将varchar列中的值转换为int Select * from view_spotcheck_manager 该值来自视图中名为“request\u id”的varchar列 异常发生在该行上 dt.Load(rdr); 似乎很明显,出于某种原因,系统看到的值都是数字,尽管是varchar列,但它试图在没有指示的情况下将其转换为int,因此我假设Load()方
Select * from view_spotcheck_manager
该值来自视图中名为“request\u id”的varchar列
异常发生在该行上
dt.Load(rdr);
似乎很明显,出于某种原因,系统看到的值都是数字,尽管是varchar列,但它试图在没有指示的情况下将其转换为int,因此我假设Load()方法中存在某种默认行为
问题是我不想让它这么做,我需要它保持原样(在这种情况下,我不应该得到这个错误。除了构造一个强类型的DataTable对象并专门加载每个列之外,还有什么方法可以使Load方法不将这个全数字的varchar值转换为int?。结果是,注释表明问题在基础视图中,而不是在Load方法中有问题的列被错误地链接到另一个表的int列。修复了连接,现在一切正常。视图可能正在计算列,并且在此过程中尝试转换失败。请查看数据库中
view\u spotcheck\u manager
的定义。因此,如果运行Select*from view\u spotcheck_manager
在SSMS中,您一点错误都没有?视图的定义是什么,从您发布的内容来看,视图中似乎发生了转换和溢出Good call guys…事实证明,有问题的列在连接时被错误地链接到了另一个表中的int列。感谢您为我指明了正确的方向。
dt.Load(rdr);