[英]How to connect ComboBox to database file in C# for WPF
我正在学习如何在Visual Studio中使用C#,现在尝试将comboBox连接到扩展名为.mdb的数据库文件,但combobox仍然无法从数据库中获取任何信息。 我希望组合框显示任何内容,描述或loadid,然后我将继续。
这是XAML代码
<Window x:Class="test_chose_pic.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:test_chose_pic"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid Background="OldLace">
<StackPanel Orientation="Horizontal" Width="390" Height="24" Background="Beige" >
<Label Content="select:" Height=" 22" HorizontalAlignment="Right"/>
<ComboBox x:Name="ComboBoxZone" Width="120" Height="22" ItemsSource="{Binding}" Margin="0,1,0,0" VerticalAlignment="Top"/>
<StackPanel>
<Button Margin=" 26,0" x:Name="btnZone" Content="Show" Width="70" Height="20" Click="btnZone_Click" />
</StackPanel>
</StackPanel>
</Grid>
和代码:
public void BindComboBox(ComboBox comboBoxName)
{
SqlConnection conn = new SqlConnection(@"Data Source = C:\Users\Mohammed's PC\Desktop\SCEPTER\pacificorpv07_2013.mdb;");
SqlDataAdapter da = new SqlDataAdapter("Select loadid,description FROM load", conn);
DataSet ds = new DataSet();
da.Fill(ds, "laods");
comboBoxName.ItemsSource = ds.Tables[0].DefaultView;
comboBoxName.DisplayMemberPath = ds.Tables[0].Columns["loads"].ToString();
comboBoxName.SelectedValuePath = ds.Tables[0].Columns["loadid"].ToString();
}
private void btnZone_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("Selected ZoneName=" + ComboBoxZone.Text + " and ZoneId=" + ComboBoxZone.SelectedValue.ToString());
}
为了更清晰起见,数据库文件具有名为loads的表,该表具有名为(loadid)和(description)的两列
wpf组合框的DisplayMemberPath
和SelectedValuePath
属性的值将是用于绑定控件的集合的列名/属性名。 在这种情况下,您使用的是DataTable,因此这些值应为表中列的名称。 因此,请更改以下几行:
comboBoxName.DisplayMemberPath = ds.Tables[0].Columns["loads"].ToString();
comboBoxName.SelectedValuePath = ds.Tables[0].Columns["loadid"].ToString();
对此:
comboBoxName.DisplayMemberPath = "loads";
comboBoxName.SelectedValuePath = "loadid";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.