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
你总是可以缩短它:
if(reader.GetFieldType(0) == typeof(byte[]));
Run Code Online (Sandbox Code Playgroud)
不幸的是,没有从SQL Server中的图像字段直接映射到.NET CLR类型......这就是为什么你得到一个字节数组.
您可能要进一步增加检查,以确保返回的字节数组实际上是一个图像(字节数组用于image,binary,varbinary,和rowversion列以及).
您可以在以下位置检查类型映射: