2016-04-07 12 views
0

DataGridにデータを格納するC#プログラムを作成しています。私はまた、私はコンボボックスを持っている列を設定することをお勧めします。私はちょうどデータベースからのデータでその列を設定することはできませんコンボボックスの選択リストの一部を持っている。私は本当に近くにいると思う。私は何が欠けているか把握できない。C#SQL Server 2014のDataGridコンボボックスのデータをポピュレートするWPF

これまでに私が考え出したXAMLについて説明します。

<Window x:Class="datagridcombobox.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:datagridcombobox" 
    mc:Ignorable="d" 
    Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded"> 

    <Grid> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition/> 
      <ColumnDefinition Width="0*"/> 
     </Grid.ColumnDefinitions> 

     <DataGrid AlternatingRowBackground="#FFC4B0B0" Height="200" Width="500" AutoGenerateColumns="False" Name="grdEmployee" Margin="2,0,1,-81"> 
      <DataGrid.Columns> 
       <DataGridComboBoxColumn Header="Terminal" x:Name="comboboxColumn1" SelectedValueBinding="{Binding Terminal}"/> 
       <DataGridTextColumn Binding="{Binding Terminal}" Width="100" Header="Terminal"/> 
       <DataGridTextColumn Binding="{Binding Applicator}" Width="100" Header="Applicator"/> 
       <DataGridTextColumn Binding="{Binding applicator_Type}" Width="100" Header="Applicator Type"/> 
       <DataGridTextColumn Binding="{Binding Hand_tool}" Width="100" Header="Hand Tool"/> 
       <DataGridTextColumn Binding="{Binding Hand_Tool_Type}" Width="100" Header="Hand Tool Type"/> 
       <DataGridTextColumn Binding="{Binding Wire_Gauge}" Width="100" Header="Wire Gauge"/> 
      </DataGrid.Columns> 
     </DataGrid> 
    </Grid> 
</Window> 

C#コード

{ 
    DataTable Lds; 
    SqlDataAdapter adapter; 
    SqlConnection connection; 

    public List<string> GVComboBox { get; set; } 

    public MainWindow() 
    { 
     InitializeComponent(); 
    } 

    public void Step1() 
    { 
     Common.sqlApplicator = "Select Terminal,Applicator,applicator_Type,Hand_tool, Hand_Tool_Type ,Wire_Gauge,Crimp_Height as 'Core Crimp Height',Conductor_Crimp_Width as 'Core Crimp Width',Insulator_Crimp_Height as 'Insulation Crimp Height',Insulator_Crimp_Width as 'Insulation Crimp Width',Tooling,Notes,Strip_Length as 'Strip Length',Applicator_Status as 'Applicator Status' ,ID from Tooling_Specs where Applicator like '2151526-1%' order by Applicator"; 

     try 
     { 
      connection.Open(); 
      adapter = new SqlDataAdapter(Common.sqlApplicator, connection); 
      Lds = new DataTable("Applicator"); 
      adapter.Fill(Lds); 
      grdEmployee.ItemsSource = Lds.DefaultView; 

     } 
     catch (Exception E) 
     { 
      MessageBox.Show(E.ToString()); 
     } 
     finally 
     { 
      connection.Close(); 
     }; 

     GVComboBox = new List<string>() { "CRV Owned", "Customer Owned", "CRV Leased", "Customer Leased", "" }; 
     comboboxColumn1.ItemsSource = GVComboBox; 
    } 

    private void Window_Loaded(object sender, RoutedEventArgs e) 
    { 
     connection = new SqlConnection(Common.ConnectionString); 
     Step1(); 
    } 
} 
+0

エラーは何ですか? – Minh

+0

エラーはありません。私は私が欲しいものでドロップダウンを取得します。しかし、もしあれば、そのフィールドにデータベースからのデータを入力したい。 –

答えて

0
SqlCommand cmd = new SqlCommand("SELECT * FROM YourDataBase", yourConnectionName); 
SqlDataReader read = null; 
read = cmd.ExecuteReader(); 
while(read.Read()) 
{ 
    YourComboBox.Items.Add(read["YourValue"].ToString() + "read["value1"].ToString()+ "StringValue"); 
} 
read.Close(); 
+0

あなたの回答の質を向上させるには、コード内のどこに答えを入れるべきかを明確に特定します。彼らの問題がどのようなものであったかについての説明と解決方法についても説明してください。あなたの回答に関連すると判明した参考資料には、リンクと著者の名前を含めてください。 – toonice

関連する問題