Hi lightsomal,
For saving image in database refer below article.
Change the zkFprint_OnImageReceived code like below.
C#
private void zkFprint_OnImageReceived(object sender, IZKFPEngXEvents_OnImageReceivedEvent e)
{
Graphics g = fpicture.CreateGraphics();
Bitmap bmp = new Bitmap(fpicture.Width, fpicture.Height);
g = Graphics.FromImage(bmp);
int dc = g.GetHdc().ToInt32();
ZkFprint.PrintImageAt(dc, 0, 0, bmp.Width, bmp.Height);
g.Dispose();
fpicture.Image = bmp;
ImageConverter converter = new ImageConverter();
byte[] bytes = (byte[])converter.ConvertTo(bmp, typeof(byte[]));
string contentType = "image/jpeg";
string constr = @"Data Source=.\SQL2014;Initial Catalog=dbFiles;Integrated Security=true";
using (SqlConnection conn = new SqlConnection(constr))
{
string sql = "INSERT INTO tblFiles VALUES(@Name, @ContentType, @Data)";
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
cmd.Parameters.AddWithValue("@Name", "Test");
cmd.Parameters.AddWithValue("@ContentType", contentType);
cmd.Parameters.AddWithValue("@Data", bytes);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
}
}
VB.Net
Private Sub zkFprint_OnImageReceived(ByVal sender As Object, ByVal e As IZKFPEngXEvents_OnImageReceivedEvent)
Dim g As Graphics = fpicture.CreateGraphics()
Dim bmp As Bitmap = New Bitmap(fpicture.Width, fpicture.Height)
g = Graphics.FromImage(bmp)
Dim dc As Integer = g.GetHdc().ToInt32()
ZkFprint.PrintImageAt(dc, 0, 0, bmp.Width, bmp.Height)
g.Dispose()
fpicture.Image = bmp
Dim converter As ImageConverter = New ImageConverter()
Dim bytes As Byte() = CType(converter.ConvertTo(bmp, GetType(Byte())), Byte())
Dim contentType As String = "image/jpeg"
Dim constr As String = "Data Source=.\SQL2014;Initial Catalog=dbFiles;Integrated Security=true"
Using conn As SqlConnection = New SqlConnection(constr)
Dim sql As String = "INSERT INTO tblFiles VALUES(@Name, @ContentType, @Data)"
Using cmd As SqlCommand = New SqlCommand(sql, conn)
cmd.Parameters.AddWithValue("@Name", "Test")
cmd.Parameters.AddWithValue("@ContentType", contentType)
cmd.Parameters.AddWithValue("@Data", bytes)
conn.Open()
cmd.ExecuteNonQuery()
conn.Close()
End Using
End Using
End Sub
If you want to compare then get the Byte Array after reading and loop through the database record and check with all the record.