现在的位置: 首页 > 综合 > 正文

System.InvalidCastException: 指定的转换无效

2012年03月05日 ⁄ 综合 ⁄ 共 1714字 ⁄ 字号 评论关闭

      麻烦高手帮我看看,我们用Linq做的系统系统,总是会偶尔的报错。

错误的消息为:

System.InvalidCastException: 指定的转换无效。    
在 System.Data.SqlClient.SqlBuffer.get_Int32()    
在 System.Data.SqlClient.SqlDataReader.GetInt32(Int32 i)   
在 Read_ta_SysDealWith(ObjectMaterializer`1 )    
在 System.Data.Linq.SqlClient.ObjectReaderCompiler.ObjectReader`2.MoveNext()    
在 System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)    
在 System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)    
在 gyltWebMis.BusinessClass.DataAccess.ta_SysDealWithDal.Getta_SysDealWithsByNode(String nodeID, String sysID) 位置 D:\ftpfiles

\Code_v1.6\Code\gyltWebMis\BusinessClass\DataAccess\ta_SysDealWithDal.cs:行号 30

有时又报下面这种错误;错误消息为:

 

System.InvalidCastException: 无法将类型为“System.Int32”的对象强制转换为类型“System.String”。    
在 System.Data.SqlClient.SqlBuffer.get_String()    
在 System.Data.SqlClient.SqlDataReader.GetString(Int32 i)    
在 Read_ta_SysDealWith(ObjectMaterializer`1 )    
在 System.Data.Linq.SqlClient.ObjectReaderCompiler.ObjectReader`2.MoveNext()    
在 System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)    
在 System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)     在 gyltWebMis.BusinessClass.DataAccess.ta_SysDealWithDal.Getta_SysDealWithsByNode(String nodeID, String sysID) 位置 D:\ftpfiles\Code_v1.6\Code\gyltWebMis\BusinessClass\DataAccess\ta_SysDealWithDal.cs:行号 30

 

我的Linq代码为

            try
            {

                DcnDataContext db=new DcnDataContext ()

                return db.ta_SysDealWith.Where(r => r.CurrentNode.Equals(nodeID)).Where(r => r.sysID.Equals(sysID)).ToList();
            }
            catch (Exception ex)
            {
                logger.Debug(ex);

            }     

我检查了一下,模型中的字段数据类型,和数据库中的是一样的。

这种错误是偶尔报错,但是又有一定的规律,一定时间后就开始报错,但是当重新发布web文件后,又好了。

这是这个Linq对应的表结构

 

麻烦园子里牛人帮忙解决下,小弟急啊。

抱歉!评论已关闭.