如何检查字段是否为图像字段

AJ.*_*AJ. 2 .net c# sql-server

对某些人来说,这似乎是一个简单的问题,但我正在努力解决它.

我正在尝试使用SQLDataReader.GetFieldType来检查某个字段是否为Image字段.让我们假设结果集的第一个字段是一个Image字段,如果我这样做:

reader.GetFieldType(0).ToString;
Run Code Online (Sandbox Code Playgroud)

我明白了System.Byte[],这是检查它的正确方法吗?我真的不喜欢:

if (reader.GetFieldType(0).ToString="System.Byte[]")
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

谢谢,

AJ

Jus*_*ner 5

你总是可以缩短它:

if(reader.GetFieldType(0) == typeof(byte[]));
Run Code Online (Sandbox Code Playgroud)

不幸的是,没有从SQL Server中的图像字段直接映射到.NET CLR类型......这就是为什么你得到一个字节数组.

您可能要进一步增加检查,以确保返回的字节数组实际上是一个图像(字节数组用于image,binary,varbinary,和rowversion列以及).

您可以在以下位置检查类型映射:

MSDN - 映射CLR参数数据