经过一段时间的尝试并在这里寻找答案,我无法从MySQL加载图像。
基本上,用户从OpenFileDialog
中选择一张图片,然后将其加载到PictureBox
中(此工作正常)。
然后,用户单击一个按钮,通过将其转换为byte[]
将图片保存在数据库中
最后,当我尝试将图片加载到另一个PictureBox
时,它全部为黑色。
将图片添加到db:
public void PictureToDB(Image img)
{
MemoryStream tmpStream = new MemoryStream();
img.Save(tmpStream, ImageFormat.Png);
tmpStream.Seek(0, SeekOrigin.Begin);
byte[] imgBytes = new byte[5000];
tmpStream.Read(imgBytes, 0, 5000);
string query = "Update TABLE Set IMG = @imgBytes";
MySqlParameter param = new MySqlParameter("@img", imgBytes);
//Skipping connection to db and all... it works
}
从db获取图片:
public void DBToPicture()
{
string query = "Select IMG From TABLE Where ...";
//Skipping Command lines ...
MySqlDataReader reader = command.ExecuteReader();
DataTable myDT.Load(reader);
Byte[] data = new Byte[0];
data = (Byte[])(myDT.Rows[0]["PHOTOLOISANT"]);
MemoryStream mem = new MemoryStream(data);
MyPictureBox.Image = Image.FromStream(mem);
}
更多信息:
varbinary(8000)
并包含此" 89504e470d0a1a0a0000000d4948445200000280000001e00802000000bab34bb3000000017352474200aece1ce90000000467414d41002e2e2e"在update
PictureBox
中加载时,图像将转换为位图。答案 0 :(得分:1)
用于存储:
CREATE INDEX part_name_trigram_i ON "Part" USING GIN("name" gin_trgm_ops);
要检索它:
var timer={
init:function(id){
this[id]={
obj:document.getElementById(id)
}
},
start:function(id){
var obj=this[id];
obj.srt=new Date();
clearTimeout(obj.to);
this.tick(id);
$( "#climbTimer" ).unbind();
$('#climbTimer').click(function(){timer.finalStop('climbTimer'); return false;});
if ($('#'+id).html().indexOf('Start') != -1)
$('#'+id).html('Stop Ascend<br><span id="elapsedTime">0.00</span>');
},
stop:function(id){
clearTimeout(this[id].to);
},
finalStop:function(id){
clearTimeout(this[id].to);
$.post('php/climbTime.php', {team: document.getElementById('team').value, roundNum: document.getElementById('round').value, time: document.getElementById('elapsedTime')});
},
tick:function(id){
this.stop(id);
var obj=this[id],sec=(new Date()-obj.srt)/1000,min=Math.floor(sec/60),sec=sec%60;
$('#elapsedTime').html(sec>9?sec:''+sec);
obj.to=setTimeout(function(){ timer.tick(id); },100);
}
}
我将使用这些步骤来存储和检索MySql中的图像。
此致
Thiyagu Rajendran
**如果答案有帮助,请将答复标记为答案,如果不答复,请将其标记为
。