2013-02-09 2 views
1

유 유 4500 및 오라클 데이터베이스, 나는 데이터베이스에 지문 템플릿, 내 코드내가 디지털 페르소나 함께 일하고

string sqlInsert = "insert into mytable(ID,FINGERPRINT)"; 
     sqlInsert += "values (:i_ID,:i_FINGERPRINT)"; 

OracleParameter iID = new OracleParameter(); 
     iID.OracleDbType = OracleDbType.Varchar2; 
     iID.Value = textBox1.Text; 
     iID.ParameterName = "i_ID"; 

OracleParameter iFINGERPRINT = new OracleParameter(); 
     iFINGERPRINT.OracleDbType = OracleDbType.Blob; 
     iFINGERPRINT.Direction = ParameterDirection.Input; 
     iFINGERPRINT.Value = Data.Templates[5]; 
     iFINGERPRINT.ParameterName = "i_FINGERPRINT"; 

cmdInsert.Parameters.Add(iID); 
cmdInsert.Parameters.Add(iFINGERPRINT); 
cmdInsert.ExecuteNonQuery(); 

노트의 여기에 일부를 저장하는 문제를 가지고 있습니다 : Data.Templates [5]는 지문 템플릿 형식입니다

"잘못된 매개 변수 바인딩"오류가 발생했습니다. 무슨 의미입니까? 누군가 나를 도울 수 있습니까? 나는 어떻게해야합니까? 사전에 감사

+0

나는 당신이 iFINGERPRINT.Value의 PARAM 데이터의 잘못된 유형을 결합 할 것을 의미 보라. Data.Templates [5]가 바이너리인지 확인하십시오. – elrado

답변

0
    string path="C:\\Fingerprintimage.bmp"; 
        FileStream fls; 
        fls = new FileStream(path, FileMode.Open, FileAccess.Read); 
        byte[] blob = new byte[fls.Length]; 
        fls.Read(blob, 0, System.Convert.ToInt32(fls.Length)); 
        fls.Close(); 
        string q=""; 
        q = "insert into mytable(ID,FINGERPRINT) values(" + 1 + ", :BlobParameter)"; 
        OracleParameter blobParameter = new OracleParameter(); 
        blobParameter.OracleDbType = OracleDbType.Blob; 
        blobParameter.ParameterName = "BlobParameter"; 
        blobParameter.Value = blob; 
        cmd = new OracleCommand(q, conn); 
        cmd.Parameters.Add(blobParameter); 
        cmd.ExecuteNonQuery(); 
관련 문제