2017-02-03 5 views
0

Visual StudioでC#を使用する方法を学びましたが、今度はコンボボックスを拡張子.mdbのデータベースファイルに接続しようとしています コンボボックスはまだ情報を取得できませんデータベース。 私はコンボボックスに何か、説明、またはloadidを表示したいです と私はそこから続行します。ComboBoxをC#のWPF用データベースファイルに接続する方法

これは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()); 
    } 

データベースファイルテーブルがロード そのテーブルは(と呼ばれる2つの列が求めていますloadid)と(説明)

+1

を使用すると、Accessデータベースを使用していますか? .mdbファイル形式はアクセスデータベース用であり、コードではsqlconnectionデータベースを使用しています。つまり、Oledbを探す必要があります。 –

答えて

0

DisplayMemberPathおよびSelectedValuePath wpfコンボボックスのプロパティは、コントロールのバインドに使用されるコレクションの列名/プロパティ名になります。ここでは、DataTableを使用しているので、これらの値はテーブルの列の名前にする必要があります。これに

comboBoxName.DisplayMemberPath = ds.Tables[0].Columns["loads"].ToString(); 
comboBoxName.SelectedValuePath = ds.Tables[0].Columns["loadid"].ToString(); 

:そう、次の行に変更

comboBoxName.DisplayMemberPath = "loads"; 
comboBoxName.SelectedValuePath = "loadid"; 
+0

私はそれを行いましたが、まだボックスにデータが表示されていない、私はSQL接続が正しく動作していないと思っています – mohammadism

+0

@ mohammadism:ok、それから、まずdataTableにデータが入っていますか? –

+0

ええ、私はそれをやろうとしていますが、接続が正しいかどうかまだ分かりません – mohammadism

関連する問題