用C#将图片保存至Oracle BLOB字段中的方法
程序员文章站
2023-11-16 23:33:34
本文我想跟大家分享的是如何将 c# 中的一些图像对象保存到 oracle 中的 blob 字段中,这里我们并不想从零开始,而是使用我自己的框架,下面我们开始。
1....
本文我想跟大家分享的是如何将 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 做为引用添加到项目中
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>
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” 的消息提示框,这表示成功了。
8. 现在检查你的数据库看看写入的数据。
好了,就这么简单。
上一篇: 详解C#中的Async和Await用法
下一篇: 一个进程间通讯同步的C#框架引荐