首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么显示ACCESS存储的OLE类型图片?送分

2012-06-05 
如何显示ACCESS存储的OLE类型图片?送分为显示ACCESS存储的OLE类型图片,使用了以下2个文件,但都没有显示出

如何显示ACCESS存储的OLE类型图片?送分

为显示ACCESS存储的OLE类型图片,使用了以下2个文件,但都没有显示出图片,网上也没找到实例,请教各位大侠指点。
VIEW3.ASPX文件:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="view3.aspx.cs" Inherits="view3" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
  <title>无标题页</title>
</head>
<body>
  <form id="form1" runat="server">
  <div>
  <asp:Image ID="Image1" runat="server" Height="185px" ImageUrl="~/view.aspx" Width="412px" />
  <asp:Image ID="Image2" runat="server" /></div>
  </form>
</body>
</html>
VIEW.ASPX.CS文件代码(VIEW.ASPX没有编写代码):
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Drawing;
using System.ComponentModel;
using System.Data.OleDb;
using System.IO;

public partial class view : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {

   
  OleDbConnection OleConn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\db1.mdb");
  
  OleConn.Open();
  string ss = "select Image1 from image1 where id='26'";//读OLE对象字段IMAGE1
  OleDbCommand comm = new OleDbCommand(ss, OleConn);
  try
  {
  byte[] img = (Byte[])comm.ExecuteScalar();
  Response.BinaryWrite(img);
  Response.ContentType = "image/jpeg";
  }
  catch
  {
   
  }
  OleConn.Close();

  }
}


[解决办法]
id='26' 你的 id 是文本类型的吗?
[解决办法]

C# code
  public class DBHelper    {        //属性:数据库链接对象        private static OleDbConnection conn;        public static OleDbConnection Conn        {            get            {                try                {                    string connstr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source=" + "" + Application.StartupPath + @"\Database.mdb";                    if (conn == null)                        conn = new OleDbConnection(connstr);                    if (conn.State == ConnectionState.Closed)                        conn.Open();                    if (conn.State == ConnectionState.Broken)                    {                        conn.Close();                        conn.Open();                    }                    return conn;                }                catch (Exception ex)                {                    throw;                }            }        }        //方法:查询,DataReader        public static OleDbDataReader GetReader(string SqlStr)        {            OleDbCommand cmd = new OleDbCommand(SqlStr, Conn);            return cmd.ExecuteReader();        }        public static OleDbDataReader GetReader(string SqlStr, OleDbParameter[] paras)        {            OleDbCommand cmd = new OleDbCommand(SqlStr, Conn);            cmd.Parameters.AddRange(paras);            return cmd.ExecuteReader();        }        //查询:DataTable        public static DataTable GetTable(string SqlStr)        {            try            {                OleDbDataAdapter dap = new OleDbDataAdapter(SqlStr, Conn);                DataSet ds = new DataSet();                dap.Fill(ds);                conn.Close();                return ds.Tables[0];            }            catch (Exception ex)            {                throw;            }        }        //增删改        public static bool Execute(string SqlStr)        {            OleDbCommand cmd = new OleDbCommand(SqlStr, Conn);            int result = cmd.ExecuteNonQuery();            conn.Close();            return result > 0;        }        /// <summary>            /// 向数据库里插入图像格式的字段(和上面情况类似的另一种实例)            /// </summary>            /// <param name="strSQL">SQL语句</param>            /// <param name="fs">图像字节,数据库的字段类型为image的情况</param>            /// <returns>影响的记录数</returns>            public static int Execute(string SqlStr, byte[] photo)        {            OleDbCommand cmd = new OleDbCommand(SqlStr, Conn);            OleDbParameter myParameter = new OleDbParameter("@photo", SqlDbType.Image);            myParameter.Value = photo;            cmd.Parameters.Add(myParameter);            int result = cmd.ExecuteNonQuery();            return result;        }        //返回首行首列        public static object GetScalar(string SqlStr)        {            OleDbCommand cmd = new OleDbCommand(SqlStr, Conn);            object obj = cmd.ExecuteScalar();            conn.Close();            return obj;        }    }这是winform的   if (dt.Rows[0]["photo"] != null && dt.Rows[0]["photo"].ToString()!="")                    {                        pictureBox1.Image = PictureOpreate.ByteArrayToImage((byte[])dt.Rows[0]["photo"], 1);                    } 


[解决办法]
如果 id 是数字类型就把 26 上的一对单引号去掉,另外你可以先把 try catch 去掉,看看有没报错在哪行
[解决办法]
http://blog.csdn.net/sx811125/article/details/4408016

热点排行