private void ShowImage(long ID)
{
string str = "SELECT 法人照片 FROM 单位基本情况 WHERE ID=" + ID.ToString();
SqlConnection conn = new SqlConnection(clsUserInfo.strConnection);
conn.Open();
SqlCommand cmd = new SqlCommand(str, conn);
SqlDataReader reader = cmd.ExecuteReader(); if (reader.Read())
{
byte[] buf = (byte[])reader[0]; MemoryStream stream = new MemoryStream(buf, 0, buf.Length);
pictureBox1.Image = Image.FromStream(stream);
stream.Close(); //stream.Write();
}
conn.Close();
}
执行到这一句pictureBox1.Image = Image.FromStream(stream);
出现参数错误.为什么? 我的开发环境为C# 2005 winform 中文版+ Sql server 2005 中文版 Express
下面是更新图片代码:
private void btnSavePhoto_Click(object sender, EventArgs e)
{
FileStream fs = File.OpenRead(pictureBox1.Tag.ToString());
//pictureBox1.Tag.ToString()是存放照片的路径
byte[] content = new byte[fs.Length];
fs.Read(content, 0, content.Length);
fs.Close();
SqlConnection conn = new SqlConnection(clsUserInfo.strConnection);
conn.Open();
string sql = "Update 单位基本情况 set "
+ " 法人照片 =' @PhotoValue '"
+ " Where ID=" + txtID.Text;SqlCommand comm = new SqlCommand( sql, conn);
comm.Parameters.Add("@PhotoValue", SqlDbType.Image).Value = content;
if (comm.ExecuteNonQuery() == 1)
{
MessageBox.Show("照片成功保存到数据库!", "保存法人照片",
MessageBoxButtons.OK,MessageBoxIcon.Information );
}
conn.Close();
}
{
string str = "SELECT 法人照片 FROM 单位基本情况 WHERE ID=" + ID.ToString();
SqlConnection conn = new SqlConnection(clsUserInfo.strConnection);
conn.Open();
SqlCommand cmd = new SqlCommand(str, conn);
SqlDataReader reader = cmd.ExecuteReader(); if (reader.Read())
{
byte[] buf = (byte[])reader[0]; MemoryStream stream = new MemoryStream(buf, 0, buf.Length);
pictureBox1.Image = Image.FromStream(stream);
stream.Close(); //stream.Write();
}
conn.Close();
}
执行到这一句pictureBox1.Image = Image.FromStream(stream);
出现参数错误.为什么? 我的开发环境为C# 2005 winform 中文版+ Sql server 2005 中文版 Express
下面是更新图片代码:
private void btnSavePhoto_Click(object sender, EventArgs e)
{
FileStream fs = File.OpenRead(pictureBox1.Tag.ToString());
//pictureBox1.Tag.ToString()是存放照片的路径
byte[] content = new byte[fs.Length];
fs.Read(content, 0, content.Length);
fs.Close();
SqlConnection conn = new SqlConnection(clsUserInfo.strConnection);
conn.Open();
string sql = "Update 单位基本情况 set "
+ " 法人照片 =' @PhotoValue '"
+ " Where ID=" + txtID.Text;SqlCommand comm = new SqlCommand( sql, conn);
comm.Parameters.Add("@PhotoValue", SqlDbType.Image).Value = content;
if (comm.ExecuteNonQuery() == 1)
{
MessageBox.Show("照片成功保存到数据库!", "保存法人照片",
MessageBoxButtons.OK,MessageBoxIcon.Information );
}
conn.Close();
}
conn.Open();
SqlCommand cmd=new SqlCommand("select pic from fuser where password='1b'",conn);
SqlDataReader reader=cmd.ExecuteReader();
reader.Read();
MemoryStream buf=new MemoryStream((byte[])reader[0]);
Image image=Image.FromStream(buf,true);
pictureBox1.Image=image;
SqlConnection conn = new SqlConnection(clsUserInfo.strConnection);
conn.Open();
SqlCommand cmd = new SqlCommand(str, conn);
SqlDataReader reader = cmd.ExecuteReader();
reader.Read();
byte[] buf = (byte[])reader[0];
MemoryStream buf2 = new MemoryStream((byte[])reader[0]);
Image image = Image.FromStream(buf2, true);
DrawToScale( image); 郁闷啊,还是执行到这一句Image image = Image.FromStream(buf2, true);出现"参数无效"错误.
(Image)im.ConvertFrom(buf);
byte[] imgbyte = (byte[])dr["photo"];//将图片数据从DataRow中取出来
pbImage .Image = System.Drawing.Image.FromStream(new System.IO.MemoryStream(imgbyte));
System.Drawing.ImageConverter im = new System.Drawing.ImageConverter();
(Image)im.ConvertFrom(buf );
编译时出现
"只有 assignment、call、increment、decrement 和 new 对象表达式可用作语句"错误.
//pbImage为picturebox,imgbyte为从数据库中取出的图片数据,数据格式为byte[].
pbImage .Image = System.Drawing.Image.FromStream(new System.IO.MemoryStream(imgbyte));
也是出现"参数无效"错误啊.
pbImage(byte[])是你从数据库中取出来的图片数据。