【问题标题】:insert image into oracle database with asp.net web forms visual studio 2012使用 asp.net Web 表单 Visual Studio 2012 将图像插入 Oracle 数据库
【发布时间】:2015-06-26 11:04:24
【问题描述】:

如何将图像文件存储在与 asp.net Web 表单应用程序(Visual Studio 2012)连接的 Oracle 数据库中。 请注意我正在使用 EF。

myContext db=new myContext();
public class MyClass
{
    public int ID { get; set; }
    public string imgName { get; set; }
    public BLOB img { get; set; }
}

public void storeImage_Click(string imgPath)
{
    MyClass h = new MyClass();
    h.imgName="somename";
    h.img=imgPath;
    db.MyClass.Add(h);
    db.SaveChanges();
}

【问题讨论】:

  • 嗯,你试过什么?
  • 我不知道如何将 img 文件转换为字节 [],坦率地说我想知道它的工作方式。谢谢你先进的先生。 @OldProgrammer

标签: c# .net oracle visual-studio-2012


【解决方案1】:
using System.IO;
using System.Data.OracleClient;

public void storeImage_Click(string imgPath)
{
    FileStream fls;
    fls = new FileStream(imgPath, FileMode.Open, FileAccess.Read);
    //a byte array to read the image 
    byte[] blob = new byte[fls.Length];
    fls.Read(blob, 0, System.Convert.ToInt32(fls.Length));
    fls.Close();

    db.MyClass.Add(blob);
    db.SaveChanges();
}

您需要使用参数添加图像

OracleParameter blobParameter = new OracleParameter();
blobParameter.OracleType = OracleType.Blob;
blobParameter.ParameterName = "MyImage";
blobParameter.Value = blob; 

从数据库中取回图像并保存到磁盘

dataRow[0] = 数据库中的图片

FileStream FS = new FileStream("image.jpg", FileMode.Create); 
byte[] blob = (byte[])dataRow[0]; 
FS.Write(blob,0,blob.Length); 
FS.Close(); 
FS = null; 

pctimg.Image = Image.FromFile("image.jpg");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-09
    • 2012-12-17
    • 2014-09-04
    • 2012-11-26
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 2014-03-21
    相关资源
    最近更新 更多