又来麻烦各位了,关于保存picturebox中的图片到数据库 之前知道用vb里怎么将picturebox中的图片保存到数据库.net里怎么做捏,请教了...备注:图片是设计时添加到控件中的.谢谢.. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用如下的方法得到Image的Byte[]这个字节数组,然后把这个字节数据存到数据库就可以了:Image img = this.getImage();MemoryStream stream = new MemoryStream();img.Save(stream, ImageFormat.Bmp);byte[] bts = stream.GetBuffer(); 再参考下面的代码:OpenFileDialog of = new OpenFileDialog();if (of.ShowDialog(this) == DialogResult.OK){ Image img = Image.FromFile(of.FileName); MemoryStream ms = new MemoryStream(); img.Save(ms, img.RawFormat); string sql = "insert into Pictures (Name, Photo) Values(@Name, @Photo)"; SqlConnection cn = new SqlConnection(); cn.ConnectionString = this.txtConnect.Text; cn.Open(); SqlCommand cm = cn.CreateCommand(); cm.CommandText = sql; cm.Parameters.Add("@Name", SqlDbType.VarChar, 500).Value=of.FileName; cm.Parameters.Add("@Photo", SqlDbType.Image).Value = ms.GetBuffer(); cm.ExecuteNonQuery();} hbxtlhx 谢谢你的关注,您给的是很好的直接获得图片的代码可是我想的是直接将picturebox中的图片放到库里,我并没有他的路径什么的... Image img = this.getImage(); ?我不太明白这句的作用? MemoryStream ms = new MemoryStream();this.pictureBox.Image.Save(ms, this.pictureBox.Image.RawFormat);string sql = "insert into Pictures (Name, Photo) Values(@Name, @Photo)";SqlConnection cn = new SqlConnection();cn.ConnectionString = this.txtConnect.Text;cn.Open();SqlCommand cm = cn.CreateCommand();cm.CommandText = sql;cm.Parameters.Add("@Name", SqlDbType.VarChar, 500).Value=of.FileName;cm.Parameters.Add("@Photo", SqlDbType.Image).Value = ms.GetBuffer();cm.ExecuteNonQuery(); this.pictureBox.Image.Save(ms, this.pictureBox.Image.RawFormat);这个是 将图片框的图片保存到 对象 ms的操作么?那么我怎么从数据库读取呢>? 这样:定义字节数组 将数据从库里读出来 放到数组中,我怎么转化成图片呢? 定义数据库字段类型为image或者二进制,然后把图片转化成byte数组在存储过程中作参数传入保存就ok了! 以字節的形式進行數據庫的存儲和 讀取//ImageToByte(Image img) public static byte[] ImageToByte(Image img) { byte[] byt = null; ImageConverter imgCvt = new ImageConverter(); object obj = imgCvt.ConvertTo(img, typeof(byte[])); byt = (byte[])obj; return byt; } //ByteToImage(byte[] byt) public static Image ByteToImage(byte[] bytImage) { Image img = null; if (bytImage.Length == 0) { return img; } else { ImageConverter imgCvt = new ImageConverter(); object obj = imgCvt.ConvertFrom(bytImage); img = (Image)obj; return img; } } 关于C#发送邮件问题 求个C#学习的QQ群! 怎么样用C#不注册调用C++写的DLL控件 ListView控件的问题 如何用c#代码动态控制Excle表的数据? 划拳机器人编译出错,什么原因? 关于数组概念的理解问题 一个发邮件的问题 散分 在c#中操纵word 怎么使用数据库连接池? 请教2002水晶报表导出错误:导出DLL:检测到错误怎么办
MemoryStream stream = new MemoryStream();
img.Save(stream, ImageFormat.Bmp);byte[] bts = stream.GetBuffer();
OpenFileDialog of = new OpenFileDialog();
if (of.ShowDialog(this) == DialogResult.OK)
{
Image img = Image.FromFile(of.FileName);
MemoryStream ms = new MemoryStream();
img.Save(ms, img.RawFormat);
string sql = "insert into Pictures (Name, Photo) Values(@Name, @Photo)";
SqlConnection cn = new SqlConnection();
cn.ConnectionString = this.txtConnect.Text;
cn.Open();
SqlCommand cm = cn.CreateCommand();
cm.CommandText = sql;
cm.Parameters.Add("@Name", SqlDbType.VarChar, 500).Value=of.FileName;
cm.Parameters.Add("@Photo", SqlDbType.Image).Value = ms.GetBuffer();
cm.ExecuteNonQuery();
}
我不太明白这句的作用?
this.pictureBox.Image.Save(ms, this.pictureBox.Image.RawFormat);
string sql = "insert into Pictures (Name, Photo) Values(@Name, @Photo)";
SqlConnection cn = new SqlConnection();
cn.ConnectionString = this.txtConnect.Text;
cn.Open();
SqlCommand cm = cn.CreateCommand();
cm.CommandText = sql;
cm.Parameters.Add("@Name", SqlDbType.VarChar, 500).Value=of.FileName;
cm.Parameters.Add("@Photo", SqlDbType.Image).Value = ms.GetBuffer();
cm.ExecuteNonQuery();
这个是 将图片框的图片保存到 对象 ms的操作么?那么我怎么从数据库读取呢>?
这样:定义字节数组 将数据从库里读出来 放到数组中,我怎么转化成图片呢?
//ImageToByte(Image img)
public static byte[] ImageToByte(Image img)
{
byte[] byt = null;
ImageConverter imgCvt = new ImageConverter();
object obj = imgCvt.ConvertTo(img, typeof(byte[]));
byt = (byte[])obj;
return byt;
} //ByteToImage(byte[] byt)
public static Image ByteToImage(byte[] bytImage)
{
Image img = null;
if (bytImage.Length == 0)
{
return img;
}
else
{
ImageConverter imgCvt = new ImageConverter(); object obj = imgCvt.ConvertFrom(bytImage);
img = (Image)obj;
return img;
}
}