PictureBoxコントロールでビデオをストリームしていますが、PictureBoxから画像を取得してSQL Serverのテーブルに保存したいとします。 PictureBoxはストリームを表示しますが、PictureBoxはnullを取得します。PictureBoxコントロールのストリームからSQL Serverに画像を保存
どうしたのですか?
private void button1_Click(object sender, EventArgs e){
SqlConnection con = new SqlConnection("Data Source=IBM-PC\\SQLEXPRESS2;Initial Catalog=DBACCESS;Integrated Security=True");
if (cmrConductor.Image == null){
mensajeOK("Error");
}else{
MemoryStream ms = new MemoryStream();
cmrConductor.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
byte[] Pic_arr = new byte[ms.Length];
ms.Position = 0;
ms.Read(Pic_arr, 0, Pic_arr.Length);
SqlCommand cmd = new SqlCommand("INSERT INTO tblUsers (fldCode, fldPic) VALUES (@fldCode, @fldPic)", con);
cmd.Parameters.AddWithValue("@fldCode", txtId.Text);
cmd.Parameters.AddWithValue("@fldPic", Pic_arr);
con.Open();
try{
int res = cmd.ExecuteNonQuery();
if (res > 0){
MessageBox.Show("insert");
}
}
catch (Exception ex){
MessageBox.Show(ex.Message);
}
finally{
con.Close();
}
}
}
あなたの質問は完全ではありません。十分な詳細を持っていないので誰もが解決策を提示することはほとんど不可能です。トピックから少し外れていますが、AddWithValueについてこの記事を読むべきです。 http://blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already/ –
私はそれが説明するのが難しいことを知っています。実際は私は初心者の開発者です。 PictureBoxコントロールのストリームビデオからイメージ(またはスナップショット)をキャプチャしてSQL Serverに格納したいだけです。上記のコードは、コントロールがnullではないのにPictureBoxがビデオイメージを認識しないときに動作するか検出しますが、わかりません。 – Leinad
個人的に私はディスク上のイメージとSQL Serverのパスを保存します。イメージをデータベースに直接格納することには、いくつかのパフォーマンス上の課題があります。少なくとも私は自分のテーブルではなく、Usersテーブルの列としてイメージを保存します。あなたのコードまでは、まだ詳細を提供していないので、私たちが助けることはできません。 –