Heim  >  Artikel  >  Datenbank  >  (老鸟求助)异步线程读取sqlserver数据库的数据老是出错,非常莫

(老鸟求助)异步线程读取sqlserver数据库的数据老是出错,非常莫

WBOY
WBOYOriginal
2016-06-07 15:40:001167Durchsuche

SELECT * FROM ( SELECT M.*, [dbo].[fn_getFullRegionName_M](M.[Workplace]) AS [WorkplaceName], R.[Name], R.[Score], R.[LastModificationTime], UP.[TrueName], UP.[Sex], UP.[Birthday], UP.[HighestDegree], UP.[WorkExperience], ROW_NUMBER() OVER

SELECT * FROM (
 SELECT M.*, [dbo].[fn_getFullRegionName_M](M.[Workplace]) AS [WorkplaceName], R.[Name],
     R.[Score], R.[LastModificationTime], UP.[TrueName], UP.[Sex], UP.[Birthday], UP.[HighestDegree], UP.[WorkExperience], 
        ROW_NUMBER() OVER(ORDER BY R.[LastModificationTime] DESC) AS _pos
        FROM [Personal].[JobApplication] M
        LEFT JOIN [Personal].[Resume] R ON R.[ResumeID] = M.[ResumeID]
        LEFT JOIN [Personal].[UserProfile] UP ON UP.[ResumeID] = M.[ResumeID]
        WHERE
        R.[IsActived] = 1 AND
        R.[FullLevel ] > 1
    ) AS sp
    WHERE _pos BETWEEN (@pageIndex-1) * @pageSize + 1 AND @pageIndex * @pageSize;

 

以上为要执行的语句,出现这样的错误:
System.Threading.ThreadAbortException: 正在中止线程。
   在 SNINativeMethodWrapper.SNIPacketGetConnection(IntPtr packet)
   在 System.Data.SqlClient.TdsParserStateObject.ProcessSniPacket(IntPtr packet, UInt32 error)
   在 System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)
   在 System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()
   在 System.Data.SqlClient.TdsParserStateObject.ReadBuffer()
   在 System.Data.SqlClient.TdsParserStateObject.ReadByteArray(Byte[] buff, Int32 offset, Int32 len)
   在 System.Data.SqlClient.TdsParserStateObject.ReadUInt32()
   在 System.Data.SqlClient.TdsParserStateObject.ReadPlpLength(Boolean returnPlpNullIfNull)
   在 System.Data.SqlClient.TdsParser.ReadPlpUnicodeChars(Char[]& buff, Int32 offst, Int32 len, TdsParserStateObject stateObj)
   在 System.Data.SqlClient.TdsParser.ReadSqlStringValue(SqlBuffer value, Byte type, Int32 length, Encoding encoding, Boolean isPlp, TdsParserStateObject stateObj)
   在 System.Data.SqlClient.TdsParser.ReadSqlValue(SqlBuffer value, SqlMetaDataPriv md, Int32 length, TdsParserStateObject stateObj)
   在 System.Data.SqlClient.SqlDataReader.ReadColumnData()
   在 System.Data.SqlClient.SqlDataReader.ReadColumn(Int32 i, Boolean setTimeout)
   在 System.Data.SqlClient.SqlDataReader.GetValueInternal(Int32 i)
   在 System.Data.SqlClient.SqlDataReader.GetValue(Int32 i)
   在 ZM.PH.MyLucene.FullIndexer.BeginLoadData() 位置 G:\ProgrammerHelper\PHSolution\MyLucene\Indexer\FullIndexer.cs:行号 88

运行环境:windows2003,iis6,asp.net .net framework 3.5。

奇怪的是,我在本地用winform程序调用该组件访问数据却从没来没有出错过(异步),可以排除程序本身的问题。

本人在行内也呆了近七八年了,从未见过这样的错误,调试时发现出错的字段不尽相同,应该不是由于某一字段数据有问题造成。

有经验的同志帮忙看一下,谢了!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn