我想使用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");
}
}
请让我知道如何解决这个问题。
答案 0 :(得分:0)
我解决了这个问题。实际上,上述代码没有问题。我只是在SQL数据库中将字段数据类型从图像更改为二进制,这样就解决了问题。
我不知道为什么会这样,但似乎图像数据类型存在问题。