データベースから画像を取得して、画像ボックスに表示しようとしています。私のコードは以下の通りです
private void getImage()
{
using (MySqlConnection conn = new MySqlConnection(connectionManager.connectionString))
{
try
{
conn.Open();
string query = "SELECT 'Image' FROM student_img WHERE ID = @ID";
MySqlCommand cmd = new MySqlCommand(query, conn);
int id = 10;
cmd.Parameters.AddWithValue("@ID", id);
var da = new MySqlDataAdapter(cmd);
var ds = new DataSet();
da.Fill(ds, "Image");
int count = ds.Tables["Images"].Rows.Count;
if (count > 0)
{
var data = (Byte[])(ds.Tables["Images"].Rows[count - 1]["Image"]);
var stream = new MemoryStream(data);
picLogo.Image = Image.FromStream(stream);
}
}
catch (Exception ex)
{
MessageBox.Show("Connection Error!\n" + ex.Message, "Error Message",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
しかし、NullReferenceExceptionエラーが発生します。別の方法もありますが、これを何らかの方法で使用できますが、C#を初めて使用するため、データベースからデータを取得する方法がわかりません。
public Image byteArrayToImage(byte[] byteArrayIn)
{
MemoryStream ms = new MemoryStream(byteArrayIn);
Image returnImage = Image.FromStream(ms);
return returnImage;
}
なんとか問題を修正し、変更する必要がありました
画像
に
画像
private void getImage()
{
using (MySqlConnection conn = new MySqlConnection(connectionManager.connectionString))
{
try
{
conn.Open();
string query = "SELECT Image FROM student_img WHERE ID = @ID";
MySqlCommand cmd = new MySqlCommand(query, conn);
int id = 10;
cmd.Parameters.AddWithValue("@ID", id);
var da = new MySqlDataAdapter(cmd);
var ds = new DataSet();
da.Fill(ds, "Image");
int count = ds.Tables["Image"].Rows.Count;
if (count > 0)
{
var data = (Byte[])(ds.Tables["Image"].Rows[count - 1]["Image"]);
var stream = new MemoryStream(data);
picLogo.Image = Image.FromStream(stream);
}
}
catch (Exception ex)
{
MessageBox.Show("Connection Error!\n" + ex.Message, "Error Message",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加