2016-05-01 11 views
0

C#のSQL Serverデータベースに指紋を保存しようとしています。私はzk4500指紋リーダーを使用しています。私は指をスキャンすることができ、テンプレートが作成されます。今私は、これらのスキャンされた指紋をデータベースに保存する方法について固執しています。以下は、テンプレートを作成するコードです。私はデータベースに保存する方法を親切に助けます。zk4500リーダーを使用してC#でSQL Serverに指紋を保存するには?

protected override void DefWndProc(ref Message m) 
{ 
    switch (m.Msg) 
    { 
     case MESSAGE_FP_RECEIVED: 
      { 
       try 
       { 
        MemoryStream ms = new MemoryStream(); 
        //Template.Serialize(ms);       
        BitmapFormat.GetBitmap(g_FPBuffer, g_nWidth, g_nHeight, ref ms); 
        Bitmap bmp = new Bitmap(ms); 
        this.picFP.Image = bmp; 
        ms.Position = 0; 
        BinaryReader br = new BinaryReader(ms); 
        Byte[] bytes = br.ReadBytes((Int32)ms.Length); 

        txtStatus.Text = "IMAGE_READY"; 

        int ret = 0; 
        int id = 0; 
        int score = 0; 
        int quality = 0; 

        if (g_IsRegister) 
        { 
         Array.Clear(g_RegTmp, 0, g_RegTmp.Length); 
         ret = ZKFinger10.BIOKEY_EXTRACT(g_biokeyHandle, g_FPBuffer, g_RegTmp, 0); 
         if (ret > 0) 
         { 
          Array.Copy(g_RegTmp, g_RegTmps[g_RegisterTimeCount++], ret); 

          // Get fingerprint quality 
          quality = ZKFinger10.BIOKEY_GETLASTQUALITY(); 
          txtQuality.Text = quality.ToString(); 

          txtPrompt.Text = string.Format("Still press finger {0} time", REGISTER_FINGER_COUNT - g_RegisterTimeCount); 

          if (g_RegisterTimeCount == REGISTER_FINGER_COUNT) 
          { 
           Array.Clear(g_RegTmp, 0, g_RegTmp.Length); 

           int size = 0; 

           unsafe 
           { 
            fixed (byte* Template1 = g_RegTmps[0]) 
            { 
             fixed (byte* Template2 = g_RegTmps[1]) 
             { 
              fixed (byte* Template3 = g_RegTmps[2]) 
              { 
               byte*[] pTemplate = new byte*[3] { Template1, Template2, Template3 }; 

               size = ZKFinger10.BIOKEY_GENTEMPLATE(g_biokeyHandle, pTemplate, 3, g_RegTmp); 
              } 
             } 
            } 
           } 

           if (size > 0) 
           { 
            ZKFinger10.BIOKEY_DB_ADD(g_biokeyHandle, ++g_RegisterCount, size, g_RegTmp); 
            txtPrompt.Text = string.Format("Register succeeded, fid={0}, totalCount={1}", g_RegisterCount, ZKFinger10.BIOKEY_DB_COUNT(g_biokeyHandle)); 

            g_IsRegister = false; 
           } 
           else 
           { 
            txtPrompt.Text = "Register failed"; 
           } 
           g_RegisterTimeCount = 0; 
          } 
         } 
         else 
         { 
          txtPrompt.Text = "Extract template failed"; 
         } 
        }    
       } 
       catch (Exception ex) 
       { 
        MessageBox.Show(ex.Message.ToString()); 
       } 
      } 
      break; 

     default: 
      base.DefWndProc(ref m); 
      break; 
    } 
} 

答えて

0
if (size > 0) 
{ 
    textbox1.Text=ZKFinger10.EncodeTemplate1(g_RegTmp); ///this code will genarate system64 string and store database field 
    ZKFinger10.BIOKEY_DB_ADD(g_biokeyHandle, ++g_RegisterCount, size, g_RegTmp); 
txtPrompt.Text = string.Format("Register succeeded, fid={0}, totalCount={1}", g_RegisterCount, ZKFinger10.BIOKEY_DB_COUNT(g_biokeyHandle)); 

             g_IsRegister = false; 
} 
+0

これは質問に対する正しい答えであるかもしれない理由を説明するためにいくつかのテキストを追加してください。 –

+0

ZKFinger10.EncodeTemplate1(g_RegTmp); ///このコードはsystem64を生成する –

関連する問題