//定义将图片转化为长二进制代码的函数getphoto()
public
Byte[]
getphoto(string
photopath)
{
string
str
=
photopath
FileStream
file
=
new
FileStream(str,
FileMode.Open,
FileAccess.Read)
Byte[]
bytBLOBData
=
new
Byte[file.Length]
file.Read(bytBLOBData,
0,
bytBLOBData.Length)
file.Close()
return
bytBLOBData
}//这是定义函数..
然后..就是将转换成二进制码的图片插入数据库中..下面是简单的也是重要的sql语句..
if
(this.pictureBox1.Image
!=
null)
{
sql1
=
sql1
+
",Photo"
sql2
=
sql2
+
",bytBLOBData"
Byte[]
bytBLOBData
=
getphoto(openFileDialog1.FileName)
cmd.Parameters.Add(new
OleDbParameter("jpeg",
OleDbType.Binary,
bytBLOBData.Length,
ParameterDirection.Input,
true,
0,
0,
null,
DataRowVersion.Default,
bytBLOBData))
}
接下来..是读取...
string
sql
=
"select
photo
from
studentinfo
where
studentid
=
"
+
this.Tag.ToString()
OleDbCommand
cmd
=
new
OleDbCommand(sql,
connection1)
if
(Convert.DBNull
!=
cmd.ExecuteScalar())
pictureBox1.Image
=
Image.FromStream(new
MemoryStream((Byte[])cmd.ExecuteScalar()))//读取长二进制为图片..
数据库里面用binary保存二进制流图片你就转换成byte[]就可以了
不建议把图片保存到数据库里面
那样你的数据库会占用很大的磁盘空间
等数据量一大
就很卡
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)