byte[] imagebytes = null; //打开数据库 SqlConnection con = new SqlConnection("server=(local);uid=sa;pwd=;database=db_05"); con.Open(); SqlCommand com = new SqlCommand("select top 1* from tb_09", con); SqlDataReader dr = com.ExecuteReader(); while (dr.Read()) { imagebytes = (byte[])dr.GetValue(1); } dr.Close(); com.Clone(); con.Close(); MemoryStream ms = new MemoryStream(imagebytes); Bitmap bmpt = new Bitmap(ms); pictureBox1.Image = bmpt;
C#的代码暂时没有,VB的代码有,跟你贴VB的参考一下吧: '保存图片到数据库中(利用数据流) Public Sub SaveImageToDB(ByRef fld As ADODB.Field, file As String) Dim c As New ADODB.Stream
On Error GoTo ErrSave '如果文件不存在,则不用保存 If FileExists(file) = False Then Exit Sub '利用数据流保存到数据库中 c.Mode = adModeReadWrite c.Type = adTypeBinary c.Open c.LoadFromFile file fld.Value = c.Read() c.Close Exit Sub ErrSave: If Err.Number <> 0 Then MsgBox Err.Number & ";" & Err.Description, vbInformation + vbOKOnly, "存储图片" End If End SubPublic Sub LoadImageFromDB(ByVal fld As ADODB.Field, objPic As Object) Dim c As New ADODB.Stream Dim strFile As String
On Error GoTo errLoad '如果图片内容为空 If IsNull(fld.Value) Then objPic.Picture = LoadPicture("") Exit Sub End If '开始从数据库中读取图片 c.Mode = adModeReadWrite c.Type = adTypeBinary c.Open c.Write (fld.Value) '生成临时文件路径 strFile = g_WinDir & "\Temp" Call fCreateDir(strFile) strFile = strFile & "\~" & GetString(False) & ".tmp" If FileExists(strFile) Then Kill (strFile) c.SaveToFile strFile, adSaveCreateOverWrite objPic.Picture = LoadPicture(strFile) '删除临时文件 Kill strFile Exit Sub errLoad: If Err.Number = 481 Then Set objPic.Picture = LoadPicture("") Else If Err.Number <> 0 Then MsgBox Err.Number & ";" & Err.Description, vbInformation + vbOKOnly, "加载图片" End If End If End Sub
反信息不是图形或则图形信息被破坏
(using SqlConnection conn=new SqlConnection(""))
{
string strSql="select photo from Tb";
SqlCommand cmd=new SqlCommand(strSql,conn);
conn.Open();
SqlDataReader reader=cmd.ExecuteReader();
if(reader.Read())
{
MemoryStream ms=new MemoryStream((byte[])reader["Photo"]);
Image image=Image.FromStream(ms,true);
picturebox1.Image=image;
}
reader.Close();
conn.Close();
}
http://topic.csdn.net/u/20090223/12/d67acacb-48f9-4cd0-9b0e-006704e81e92.html
'保存图片到数据库中(利用数据流)
Public Sub SaveImageToDB(ByRef fld As ADODB.Field, file As String)
Dim c As New ADODB.Stream
On Error GoTo ErrSave
'如果文件不存在,则不用保存
If FileExists(file) = False Then Exit Sub
'利用数据流保存到数据库中
c.Mode = adModeReadWrite
c.Type = adTypeBinary
c.Open
c.LoadFromFile file
fld.Value = c.Read()
c.Close
Exit Sub
ErrSave:
If Err.Number <> 0 Then
MsgBox Err.Number & ";" & Err.Description, vbInformation + vbOKOnly, "存储图片"
End If
End SubPublic Sub LoadImageFromDB(ByVal fld As ADODB.Field, objPic As Object)
Dim c As New ADODB.Stream
Dim strFile As String
On Error GoTo errLoad
'如果图片内容为空
If IsNull(fld.Value) Then
objPic.Picture = LoadPicture("")
Exit Sub
End If
'开始从数据库中读取图片
c.Mode = adModeReadWrite
c.Type = adTypeBinary
c.Open
c.Write (fld.Value)
'生成临时文件路径
strFile = g_WinDir & "\Temp"
Call fCreateDir(strFile)
strFile = strFile & "\~" & GetString(False) & ".tmp"
If FileExists(strFile) Then Kill (strFile)
c.SaveToFile strFile, adSaveCreateOverWrite
objPic.Picture = LoadPicture(strFile)
'删除临时文件
Kill strFile
Exit Sub
errLoad:
If Err.Number = 481 Then
Set objPic.Picture = LoadPicture("")
Else
If Err.Number <> 0 Then
MsgBox Err.Number & ";" & Err.Description, vbInformation + vbOKOnly, "加载图片"
End If
End If
End Sub
这是偶们老师的博客,他写的一篇文章,图片从数据库里读取的,
已经试验过,可以读取,
可以去看看
/// </summary>
/// <param name="YuanGongDaiMa">员工代码</param>
/// <returns></returns>
public MemoryStream Select_TuPian(int YuanGongDaiMa)
{
try
{
//MemoryStream ii = new MemoryStream();
using (SqlConnection con = Con.GetConnect())
{
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "Select_YuanGongZhaoPian";
cmd.CommandTimeout = 0;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = con;
cmd.Parameters.Add("@YuanGongDaiMa", SqlDbType.Int);
cmd.Parameters["@YuanGongDaiMa"].Value = YuanGongDaiMa;
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
buf = new MemoryStream((byte[])reader["ZhaoPianXinXi"]);
}
}
return buf;
}
catch
{
return null;
} }
MemoryStream kk = YGXX.Select_TuPian(YuanGongDaiMa);
if (kk!=null)
{
if (kk.Length>5)
{
Image Pictrue = Image.FromStream(kk, true);
pictureBox1.Image = Pictrue;
}
}
这是保存到数据库的
if (openFileDialog1.FileName.ToString(). != "")
{
FileStream fs = new FileStream(openFileDialog1.FileName.ToString().Trim(), FileMode.Open, FileAccess.Read);
ib = new byte[fs.Length];
fs.Read(ib, 0, (int)fs.Length);
}
else { ib = new byte[0]; } cmd.Parameters.Add("@ZhaoPianXinXi", SqlDbType.Image);
cmd.Parameters["@ZhaoPianXinXi"].Value = ZhaoPianXinXi;