上传的代码:
private void upload_Click(object sender, EventArgs e)
{
//二进制来存储图片
FileStream stream = new FileStream(fName, FileMode.Open, FileAccess.Read);
byte[] buffer = new byte[stream.Length];
stream.Read(buffer, 0, (int)stream.Length);
stream.Close();
string sql = "insert into 图库(房屋编号,图片)values('" + "1" + "','" + buffer + "')";
SIUD.Insert_and_update(sql);
upload.Enabled = false;
}读取代码: void read_picture()
{
byte[] imageBytes;
string sql = "select * from 图库 where 房屋编号='" + "1" + "'";
SqlDataReader dr = SIUD.dr_read_picture(sql);
if(dr.Read()){
imageBytes = (byte[])dr["图片"];//获取图片数据
//将内存流格式化为位图
MemoryStream stream = new MemoryStream(imageBytes);
Bitmap bmap = new Bitmap(stream);
// ms1.Close();
this.pictureBox1.Image = bmap;//将位图显示在界面的PictureBox控件中
}
}
MemoryStream stream = new MemoryStream(imageBytes)说是参数无效
private void upload_Click(object sender, EventArgs e)
{
//二进制来存储图片
FileStream stream = new FileStream(fName, FileMode.Open, FileAccess.Read);
byte[] buffer = new byte[stream.Length];
stream.Read(buffer, 0, (int)stream.Length);
stream.Close();
string sql = "insert into 图库(房屋编号,图片)values('" + "1" + "','" + buffer + "')";
SIUD.Insert_and_update(sql);
upload.Enabled = false;
}读取代码: void read_picture()
{
byte[] imageBytes;
string sql = "select * from 图库 where 房屋编号='" + "1" + "'";
SqlDataReader dr = SIUD.dr_read_picture(sql);
if(dr.Read()){
imageBytes = (byte[])dr["图片"];//获取图片数据
//将内存流格式化为位图
MemoryStream stream = new MemoryStream(imageBytes);
Bitmap bmap = new Bitmap(stream);
// ms1.Close();
this.pictureBox1.Image = bmap;//将位图显示在界面的PictureBox控件中
}
}
MemoryStream stream = new MemoryStream(imageBytes)说是参数无效
解决方案 »
- WPF下System.Windows.Ink的手写识别可否达到工具栏中的tablet pc输入面板中的识别率?
- 问题:rda.submit() 和 rad.push() 的区别和各个的运行机制
- 怎么读取QQ游戏玩家列表
- TabControl样式设置
- SQL 语句
- 线程问题
- 关于.Net的几点疑问
- 在Console.WriteLine(@"")中的@是什么意思啊!在线等!进来看看.
- 在winform程序中如何关闭打开的系统软键盘
- OleDbDataReader如何取access中小数类型(写入时是写入float)
- 尝试读取或写入受保护哦内存。这通常指示其他内存已损坏。。
- 使用线程,总是假死,求指导
其次确认imageBytes已经被正确读取到。显示为图片的代码:
Image img = Image.FromStream(new MemoryStream(imageBytes));
pictureBox1.Image = img;
http://www.cnblogs.com/wuzi145/archive/2012/05/04/2483529.html
{
SqlConnection sqlcon = new SqlConnection(connStr);
sqlcon.Open();
SqlCommand cmd = new SqlCommand(sql, sqlcon);
SqlParameter paramTitle = new SqlParameter("@buffer", SqlDbType.Image);
paramTitle.Value = buffer;
cmd.Parameters.Add(paramTitle);
int b = cmd.ExecuteNonQuery();
sqlcon.Close();
}
public void Insert_picture(string sql, byte[] buffer)
{
SqlConnection sqlcon = new SqlConnection(connStr);
sqlcon.Open();
SqlCommand cmd = new SqlCommand(sql, sqlcon);
SqlParameter paramTitle = new SqlParameter("@buffer", SqlDbType.Image);
paramTitle.Value = buffer;
cmd.Parameters.Add(paramTitle);
int b = cmd.ExecuteNonQuery();
sqlcon.Close();
}
这个样子也不行唉
我存进去和读出来我都贴出来了
你们帮我看看
数据库的图片肯定是IMAGE格式 查找数据库也成功 查了数据库 图片的数据显示是<二进制...>
2 再用你的方法读出byte [],然后用 File.WriteAllBytes还原成文件,后缀改成jpg,看看能不能正确显示。如果可以的话撇开DBHelper之类的,直接用原味ADO.NET再测试下。