【问题标题】:insert image to BLOB column in oracle在 oracle 中将图像插入到 BLOB 列
【发布时间】:2020-12-26 17:41:05
【问题描述】:

我想上传图像并将其插入到 oracle 中的 (BLOB) 列中,当我运行它时,它给我“完成”没有问题,但是当我检查 DB 时,照片的列是空的,有什么问题?还是可以插入到varchar?

public byte[] ConvertToBytes(HttpPostedFileBase image)
{
    byte[] imageBytes = null;
    BinaryReader reader = new BinaryReader(image.InputStream);
    imageBytes = reader.ReadBytes((int)image.ContentLength);
    return imageBytes;
}

这是将图像从 HttpPostedFileBase 转换为 byte[] 的代码 然后我将其插入名称为 Photo 的列中 public string Createcontant(string articalname, string KEYWORD_NAME, string articalbody , HttpPostedFileBase 文件)

{

    Contant c1 = new Contant() ;
    OracleConnection conn = new OracleConnection();
    OracleCommand cmd = new OracleCommand();
   if (file.ContentLength > 0)
    {
     c1.photo = ConvertToBytes(file);


            }
    try
    {
        conn.ConnectionString = ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString;
        cmd.Connection = conn;
        conn.Open();


        cmd.Parameters.AddWithValue("photo", ConvertToBytes(file));

        cmd.Parameters.AddWithValue("articalname", articalname);
        cmd.Parameters.AddWithValue("KEYWORD_NAME", KEYWORD_NAME);
        cmd.Parameters.AddWithValue("articalbody", articalbody);
        cmd.Parameters.AddWithValue("parAddedUser", HttpContext.Current.Session["UserName"].ToString());
        cmd.Parameters.AddWithValue("articalbody", articalbody);

        // cmd.Parameters.AddWithValue("parUserAccount", userAccount);

        /***************************************************************************************/
        string sql = "insert into contact" +
                     "( ARTICL_ID, ARTICAL_NAME, IDATE, IUSER," +
                     "   KEYWORD_NAME, ARTICALBODY ,photo )" +
                     " Values " +
                     "(  CONTANT_SEQ.nextval, :articalname,sysdate,:parAddedUser," +
                     " :KEYWORD_NAME,:articalbody , :photo)";




        cmd.CommandText = sql;
        cmd.ExecuteNonQuery();
        cmd.Dispose();
        cmd.Parameters.Clear();


        //Response.Redirect("~/Admin/UsersManagment.aspx", false);
        return "done";
    }
    catch (Exception ex)
    {

      
    }
    finally
    {
        conn.Close();
    }
}

【问题讨论】:

    标签: oracle model-view-controller file-upload


    【解决方案1】:

    您不能使用 INSERT 语句直接插入 BLOB,您必须先插入一个 empty_blob,然后再填充它。

    见她的例子:https://docs.oracle.com/cd/A84870_01/doc/java.816/a81354/oralob2.htm

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-09
      • 2017-03-23
      • 2020-06-13
      • 1970-01-01
      • 2013-11-29
      • 2020-02-25
      • 2022-01-04
      • 2015-11-03
      相关资源
      最近更新 更多