欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

用C#将图片保存至Oracle BLOB字段中的方法

程序员文章站 2023-11-16 23:33:34
本文我想跟大家分享的是如何将 c# 中的一些图像对象保存到 oracle 中的 blob 字段中,这里我们并不想从零开始,而是使用我自己的框架,下面我们开始。 1....

用C#将图片保存至Oracle BLOB字段中的方法

本文我想跟大家分享的是如何将 c# 中的一些图像对象保存到 oracle 中的 blob 字段中,这里我们并不想从零开始,而是使用我自己的框架,下面我们开始。

1. 首先创建一个空的表: 
 

create table gambar
(
 gambar_bin blob
);

 
2. 接下来下载 imageviewer 库. 这是一个我自己开发的 wpf 用户控件用来加载图片文件到 wpf 窗体(这是一个开源的控件,尽管我很讨厌开源),下载后解压。


3. 接下来创建一个 wpf 应用 (我很讨厌这样写 file –> new –> project… –> wpf application ) 然后取个名字 wpfsavetophotooracle. 对了,我差点忘了我用的是 visual studio 2008 来写这个例子。

4. 将下载后的 imageviewer.dll 做为引用添加到项目中

用C#将图片保存至Oracle BLOB字段中的方法

5. 修改你的窗体如下:

 或者你真的很懒,只需要复制一下的 xaml 代码即可:

复制代码 代码如下:
 <window x:class="wpfsavephototooracle.window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:s="clr-namespace:imageviewer;assembly=imageviewer"
    title="window1" height="324" width="392" >
    <grid>
        <s:imageviewer name="imgviewer" />
        <button height="23" horizontalalignment="left"
                margin="106,0,0,31.4" name="btnsavetooracle"
                verticalalignment="bottom" width="75"
                click="btnsavetooracle_click">save</button>
    </grid>
</window>


6. 下一步也是最后一步,我们进入代码逻辑,双击 save 按钮然后修改代码如下:
 

using system.windows;
using system.data.oracleclient;
using system.data;
using system;
 
namespace wpfsavephototooracle
{
  /// <summary>
  /// interaction logic for window1.xaml
  /// </summary>
  public partial class window1 : window
  {
    oracleconnection conn;
    oraclecommand cmd;
 
    public window1()
    {
      initializecomponent();
    }
 
    private void btnsavetooracle_click(object sender, routedeventargs e)
    {
      try
      {
        conn = new oracleconnection(
          "data source=localhost;" +
          "persist security info=true;" +
          "user id=c07;password=c07;unicode=true");
        conn.open();
 
        cmd = new oraclecommand(
          "insert into gambar values(:blobtodb)",
          conn);
        cmd.commandtype = commandtype.text;
 
        oracleparameter param = cmd.parameters.add("blobtodb",
          oracletype.blob);
        param.direction = parameterdirection.input;
        param.value = imgviewer.imagebinarydata;
 
        cmd.executenonquery();
 
        conn.close();
        messagebox.show("image saved");
      }
      catch (exception ex)
      {
        messagebox.show("failed to save (" + ex.message + ")");
      }
    }
  }
}

7. 现在可以测试你的项目了,点击 browse... ,选择一个图片然后点击保存按钮,你将看到一个 “image saved” 的消息提示框,这表示成功了。

用C#将图片保存至Oracle BLOB字段中的方法

8. 现在检查你的数据库看看写入的数据。

用C#将图片保存至Oracle BLOB字段中的方法

好了,就这么简单。