Не было найдено ни одного компонента визуализации, подходящего для выполнения этой операции.wpf C#
Я пытаюсь загрузить изображение из моей базы данных **.mdb** в WPF. Я использую этот код :
public void loadimg() { con.Open(); OleDbCommand cmd = new OleDbCommand("Select * from recents", con); DataTable table = new DataTable; OleDbDataAdapter adap = new OleDbDataAdapter(cmd); adap.Fill(table); if (table.Rows.Count <= 0) { MsgBox("nooo"); } else { MemoryStream stream = new MemoryStream(); StreamWriter stm; BinaryWriter writer = new BinaryWriter(stream); int bufferSize = 100; byte[] outByte = new byte[bufferSize + 1]; long retval; long startIndex = 0; string pubID = ""; OleDbDataReader reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess); reader.Read(); while (reader.Read()) { startIndex = 0; retval = reader.GetBytes(1, startIndex, outByte, 0, bufferSize); while (retval == bufferSize) { writer.Write(outByte); writer.Flush(); startIndex += bufferSize; retval = reader.GetBytes(1, startIndex, outByte, 0, bufferSize); } writer.Write(outByte, 0, (int)retval - 1); writer.Flush(); } reader.Close(); con.Close(); stream.Position = 0; stream.Seek(0, SeekOrigin.Begin); System.Drawing.Image _Image = System.Drawing.Image.FromStream(stream); image1.Source = System.Windows.Media.Imaging.BitmapFrame.Create(stream); } }
Приведенный выше код возвращает ошибку :
> не было найдено ни одного компонента визуализации, подходящего для завершения этой операции.
Я потратил несколько часов, пытаясь понять, как это исправить.Любая помощь будет очень признательна.
Кстати,вот код, который я использовал для вставки данных :
public void adddata() { con.Open(); OleDbCommand cmd = new OleDbCommand("Insert into recents(Pic)values(@pic)", con); byte[] data; System.Drawing.Image myimage = System.Drawing.Image.FromFile("E:\\19686468_1419770068104721_1127495277_o.png"); using (MemoryStream ms = new MemoryStream()) { myimage.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp); data = ms.ToArray(); } cmd.Parameters.AddWithValue("@pic", data); cmd.ExecuteNonQuery(); con.Close(); }
Пожалуйста, помогите мне!
Что я уже пробовал:
Я перепробовал почти все решения, доступные в сети, но безрезультатно..Одно из решений, которое я не мог попробовать, состояло в том, чтобы преобразовать поток памяти в записываемое растровое изображение, так как я не могу получить сборку "System.windows.graphics"
Richard Deeming
Вы загружаете несколько изображений PNG из базы данных, добавляя их все в один поток, а затем пытаетесь загрузить объединенные изображения как одно изображение. Это никогда не сработает.