Karachi Coder Ответов: 2

как проверить отпечаток пальца DPFP из MS SQL на языке C#


я сохранил шаблон digital persona dpfp в varbinary(max), теперь я удаляю его из базы данных , конвертирую в байт [], затем десерилизую его, а затем помещаю в метод verify (), но происходит ошибка
Исключение из HRESULT: 0xFFFFFFF8

как я получаю данные, приведено ниже



Объект sqlconnection CN = на новое sqlconnection(@"источник данных=окна\меня;начальный каталог=Регистрация;сохранять сведения о безопасности=true;в идентификатор пользователя=СА ; пароль=sa123");

спицы.Открыть();
SqlDataAdapter adp = new SqlDataAdapter("Select varb from employee where employeeid='127'", cn);
DataTable dt = новый DataTable();
АДП.Заполнить(ДТ);
байты= ConvertDataSetToByteArray(dt);



Шаблон = новый DPFP.Шаблон();
Шаблон.Десериализация(байты);




"Верификация пула".Проверить(функции, шаблон, Реф результат);
UpdateStatus(результат.Фарахиев);
если (результат.Проверенный)
MakeReport("отпечаток пальца был проверен.");
еще
MakeReport("отпечаток пальца не был проверен.");
}

эта функция Verify() не проверяет данные, поступающие из DB>

где я делаю ошибку? в обращении? или в неправильном получении данных?

Member 12862705

Эй, парень, как проверить все шаблоны отпечатков пальцев из базы данных ? этот код взят из образца регистрации one touch sdk, верно?

2 Ответов

Рейтинг:
5

Karachi Coder

ConvertDataSetToByteArray() mehthod должен быть исключен

Система.Байт в datable будет преобразован в байт[] по:

foreach (DataRow row in dt.Rows)
                   {
                        bytes = (byte[])row["varb"];
                   }


Рейтинг:
16

Duncan Edwards Jones

ConvertDataSetToByteArray не делает то, что вы думаете, что он делает.

Вам нужно получить значение таблицы данных для поля "varb" в виде байтового массива ( см. Поле<t>()[^] )


Karachi Coder

этот метод содержит

частная байт[] ConvertDataSetToByteArray(объект DataTable объект DataTable)
{
byte[] binaryDataResult = null;
использование (MemoryStream memStream = новый MemoryStream())
{
BinaryFormatter brFormatter = новый BinaryFormatter();
объект DataTable.RemotingFormat = SerializationFormat.Двоичный;
brFormatter.Сериализация(memStream, dataTable);
binaryDataResult = memStream.Метод toArray();
}
вернуться binaryDataResult;
}


что же теперь делать