上一篇文章我们介绍了将图像保存到 BLOB 字段中,今天我们要讲的是如何将这个写入的数据读出来并显示。别担心,这个教程同样很简单,这里我们会用到 DataBinding 技术,在此之前你需要先了解这项技术,而且我很懒,我不想在这里解释这个技术。
1. 创建一个新的 WPF 应用并取名为 WpfLoadOracleBlob.
2. 这里我们继续使用之前教程中用到的数据库,因此无需再创建新表。修改窗体如下图所示:
我知道你们大多数人都很懒,所以还是给你提供了 XAML 代码:
<Window x:Class="WpfLoadOracleBlob.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window1" Height="300" Width="300" Loaded="Window_Loaded"> <Grid> <ComboBox Height="23" Margin="12,12,12,0" Name="comboBox1" VerticalAlignment="Top" ItemsSource="{Binding}"> <ComboBox.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding Path=ROWNUM}" /> </DataTemplate> </ComboBox.ItemTemplate> </ComboBox> <Image Margin="12,41,12,12" Name="image1" Stretch="Fill" Source="{Binding ElementName=comboBox1, Path=SelectedItem.GAMBAR_BIN}"/> </Grid> </Window>在 xaml 代码中你会看到 {Binding} ,你想知道吗?那就去搜索一下吧 :)
using System.Windows; using System.Data.OracleClient; using System.Data; namespace WpfLoadOracleBlob { /// <summary> /// Interaction logic for Window1.xaml /// </summary> public partial class Window1 : Window { public Window1() { InitializeComponent(); } private void Window_Loaded(object sender, RoutedEventArgs e) { OracleConnection conn = new OracleConnection( "Data Source=localhost;" + "Persist Security Info=True;" + "User ID=C07;Password=C07;Unicode=True"); conn.Open(); OracleDataAdapter ad = new OracleDataAdapter( "SELECT ROWNUM, GAMBAR_BIN FROM GAMBAR", conn); DataTable tb = new DataTable(); ad.Fill(tb); comboBox1.DataContext = tb; conn.Close(); } } }
关键点是comboBox1.DataContext = tb;这意味着 comboBox1 控件绑定了来自 SELECT 查询的结果数据。
4. 现在可以测试你的应用了:2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务