あなたは2つが両方とも同じ結果をもたらすと思うでしょう。しかし、これは、変換が2つのゼロをトリミングしているためではありません。したがって、2番目は446641と446641を比較しているため、結果を返しません。
select memberID,
Photo as PhotoBlob
from SomeTable
WHERE memberId = '00446641'
Select memberID,
Photo as PhotoBlob
from SomeTable
WHERE memberId = convert(char(13), 00446641) - this is trimming off the 2 zeros
奇妙な理由でmemberIDがintでない場合は、そのテーブルのchar(13)です。
アップデート
コンテキストは次のとおりです。
public static MemberPhoto RetrieveMemberPhotoFromBlob(Int64 contractNumber)
{
Database db = DatabaseFactory.CreateDatabase(Config.DbConnectionString_MemberPhotos);
using ( DbCommand cmd = db.GetSqlStringCommand(string.Format(@" Select memberID,
Photo as PhotoBlob
from SomeTable
WHERE memberId = convert(char(13), @{0})","memberID")))
{
try
{
db.AddInParameter(cmd, "@contractNumber", DbType.Int64, contractNumber);