繁体   English   中英

如何将ComboBox连接到WPF的C#中的数据库文件

[英]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组合框的DisplayMemberPathSelectedValuePath属性的值将是用于绑定控件的集合的列名/属性名。 在这种情况下,您使用的是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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM