我觉得原理都差不多,你可以参考这个
http://www.cndot.net/article/show.asp?id=776

解决方案 »

  1.   

    有点问题,我的数据库是oracle的,而例子中数据库是sql server的,这样,有很多微软的东西我就用不到了!
      

  2.   

    老兄,原理上都是一样的啊,只不过sqlserver用image,oracle用别的拉,sqlserver用,sqlconnection,sqlcommand等,oracle用oledbconnecion等等
      

  3.   

    这点我是知道的,可就是那一点不同,害得我忙了老半天!!!希望你能指点一二!!
    我的源代码如下:
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            '在此处放置初始化页的用户代码
            Response.Expires = 0
            Response.Buffer = True
            Response.Clear()        Dim strConnection As String = "Provider=MSDAORA.1;Password=ztcx;User ID=ztcx;Data Source=ztcx"
            Dim strSQL As String
            Dim strResultsHolder As String
            strSQL = "SELECT photo_jpg from photo_t where photo_no='99901008953'"
            Dim objConnection As New OleDbConnection(strConnection)
            Dim objCOmmand As New OleDbCommand(strSQL, objConnection)
            Dim objDataReader As OleDbDataReader
            objConnection.Open()
            objDataReader = objCOmmand.ExecuteReader()        If objDataReader.Read() = True Then
                test = objDataReader("photo_jpg")
                'Response.BinaryWrite(objDataReader("photo_jpg"))
            End If        Response.End()但总是在“objDataReader = objCOmmand.ExecuteReader()”出错,错误如下:不支持此接口发生了一个 Oracle 错误,但无法从 Oracle 中检索错误信息。数据类型不被支持。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 不支持此接口发生了一个 Oracle 错误,但无法从 Oracle 中检索错误信息。数据类型不被支持。
      

  4.   

    你应该用executeScalar返回该object,然后对其进行操作
    参看代码如下
    Byte[] OriPicData=(Byte[])this.MyCommand.ExecuteScalar();
    Stream fs=new MemoryStream() ;
    fs.Write(OriPicData,0,OriPicData.Length); 

    System.Drawing.Image MyImage=System.Drawing.Image.FromStream(fs);
    System.Drawing.Bitmap MyBitMap=new System.Drawing.Bitmap(MyImage,MyImage.Size);

    MyBitMap.Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);
      

  5.   

    将以上代码改为
    Dim OriPicData as Byte[]
    Dim fs=new MemoryStream() 
    OriPicData=this.MyCommand.ExecuteScalar();
    Dim MyImage=System.Drawing.Image.FromStream(fs);
    Dim  MyBitMap=new System.Drawing.Bitmap(MyImage,MyImage.Size);
    MyBitMap.Save(
    Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);
      

  6.   

    此句objDataReader = objCOmmand.ExecuteReader()
    应改为
    Dim myobject as Object
    myobject=objCommand.ExecuteScalar() (返回一个图片的object)
    然后你再针对这个object做处理,转成byte[]类型,然后输出。
    虽然我的第一次的代码是c#.net的,可是原理是一样的。。
    你再仔细看看吧,一定会有帮助的
      

  7.   

    此句objDataReader = objCOmmand.ExecuteReader()
    应改为
    Dim myobject as Object
    myobject=objCommand.ExecuteScalar() (返回一个图片的object)
    然后你再针对这个object做处理,转成byte[]类型,然后输出。
    虽然我的第一次的代码是c#.net的,可是原理是一样的。。
    你再仔细看看吧,一定会有帮助的
      

  8.   

    还是不行,不管怎么样,到myobject=objCommand.ExecuteScalar()就会出错,错误信息如下:不支持此接口发生了一个 Oracle 错误,但无法从 Oracle 中检索错误信息。数据类型不被支持。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 不支持此接口发生了一个 Oracle 错误,但无法从 Oracle 中检索错误信息。数据类型不被支持。源错误: 
    行 45:         'Dim OriPicData As Byte = objCOmmand.ExecuteScalar().ToByte
    行 46:         'objDataReader = objCOmmand.ExecuteReader(CommandBehavior.SequentialAccess)
    行 47:         myobject = objCOmmand.ExecuteScalar()
    行 48: 
    行 49: 
     
    谢谢!