画像をアップロードすると、その画像でハッシュも生成されますが、画像はデータベースに保存されますが、問題はどのようにしてdatabase.Belowにハッシュを格納できますか?Image C#で挿入するハッシュ
private void FirstpictureBox_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Title = "Select First Image";
ofd.Filter = "Image File(*.png;*.jpg;*.bmp;*.gif)|*.png;*.jpg;*.bmp;*.gif";
if (ofd.ShowDialog() == DialogResult.OK)
{
FirstpictureBox.Image = new Bitmap(ofd.FileName);
byte[] imgBytes = new byte[0];
//convert image to byte array
imgBytes = (byte[])converter.ConvertTo(FirstpictureBox.Image, imgBytes.GetType());
//compute SHA hash string from image bytes
string hash = ComputeHashCode(imgBytes);
}
}
private string ComputeHashCode(byte[] imgBytes)
{
//Compute hash bytes
byte[] hash = shaEncryptor.ComputeHash(imgBytes);
//Convert hash bytes to string representation
return Convert.ToBase64String(hash);
}
public void ImageHash(string hash)
{
}
private void SaveRecord()
{
ImageHash(hash);
string connString = ConfigurationManager.ConnectionStrings["dbx"].ConnectionString;
string cmdString = "INSERT INTO users (img1,hash) VALUES (@firstimage,@hash)";
using (OleDbConnection con = new OleDbConnection(connString))
{
using (OleDbCommand cmd = new OleDbCommand(cmdString, con))
{
con.Open();
cmd.Parameters.AddWithValue("@firstimage", savePhoto());
cmd.Parameters.AddWithValue("@hash", hash);
cmd.ExecuteNonQuery();
}
}
}
私はこの問題を解決することができ、現在のcontext.howに存在しない、それは私にerror.hashを与えるImageHash(ハッシュ)関数SaveRecord()関数を呼び出します。
コードは正しいですか? 'ImageHash()'は何もせず、宣言されていない変数 'hash'を使用している' SaveRecord() 'では、コンパイルエラーが発生します。計算後、 'string hash = ComputeHashCode(imgBytes)'で何もしません。おそらく 'imgbytes'と' hash'を 'SaveRecord()'関数に渡し、 'FirstpictureBox_Click()'で呼び出すべきでしょうか? –
はい、あなたは変数 'hash'を使用しようとしていますが、宣言していません。あなたはその変数がどこから来ると思いますか?おそらくあなたはそれをパラメータとして追加したいでしょうか?それを取得するために 'ComputeHashCode'メソッドを呼び出しますか?この質問にはハッシュ固有のものは何もありません... –