执行查询时不会抛出错误

时间:2013-08-16 11:28:58

标签: c# sql sql-server vb.net casting

我们使用System.Data.SqlClient.SqlCommand在SQL命令下执行并分配给Sqldata阅读器。

SELECT DISTINCT cast([reg].[pin]  as float) AS [pin] FROM [reg]

这里'pin'列的数据类型是nvarchar,它也包含一些字符串数据。执行查询时,不会抛出任何错误,并且reader hasrows属性返回false,但是当reader.read完成时,将引发错误。

通常,如果查询包含错误,则执行时会抛出错误,但是上面的查询为什么它的行为会有所不同?

1 个答案:

答案 0 :(得分:0)

因为sql认为在第一个实例中一切都会好起来的。当它读取数据并试图在reader.read期间解析读取时,将抛出错误。