将列表框绑定到SQL数据库图像字段

时间:2016-03-25 06:50:11

标签: c# sql image xaml listbox

我想使用C#和WPF在SQL数据库的图像字段中显示图像。我尝试了以下代码,但它只检索了图像字段数据以外的所有字段。

<ListBox x:Name="listBox" HorizontalContentAlignment="Left" FontFamily="Arial" FontSize="18" HorizontalAlignment="Left" Height="552" Margin="10,198,0,0" VerticalAlignment="Top" Width="754" ItemsSource="{Binding}" >
        <ListBox.ItemTemplate>
            <DataTemplate>
                <DockPanel >
                    <TextBlock Text="{Binding ID}" FontWeight="Bold"
                        DockPanel.Dock="Left"
                        Margin="5,0,10,0" Width="20" />
                    <TextBlock Text="{Binding Name}" FontWeight="Bold"
                        DockPanel.Dock="Left"
                        Margin="5,0,10,0" Width="150" />
                    <Image Source="{Binding PhotoID}"
                           DockPanel.Dock="Left"

                         Margin="5,0,10,0" Width="150" Height="150" Stretch="Uniform"/>

                </DockPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

在C#部分我也使用以下代码:

Private void RetrieveData()
    {
        string ConString = conn;
         using (SqlConnection con = new SqlConnection(ConString))
        {

            SqlCommand cmd = new SqlCommand(CmdString, con);
            sda = new SqlDataAdapter(cmd);
            dt = new DataTable();
            sda.Fill(dt);

        }

public MainPage()
    {
        InitializeComponent();
        try
        {
            CmdString = "Select ID,Name,PhotoID from Employees";
            RetrieveData();
            listBox.ItemsSource = dt.DefaultView;


        }
        catch
        {
            MessageBox.Show("db error");
        }
    }

请让我知道如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。实际上,上述代码没有问题。我只是在SQL数据库中将字段数据类型从图像更改为二进制,这样就解决了问题。

我不知道为什么会这样,但似乎图像数据类型存在问题。