如何从另一个数据表中获取数据

时间:2016-05-04 18:29:24

标签: c# wpf datatable

如何从sql表中获取数据到我的其他列表视图中我已经使用它来处理数据但是无法使用它来使用它

    public SqlConnection conn;
    public SqlCommand cmd;
    string connstring = (@"Data Source=SINDALSQL\MSSQL14; Initial Catalog=OminiData; Integrated Security =True");
    string data = ("SELECT Billed, Mærke, Model, Årgang, [Motor Type], Krydsmål, Centerhul, Møtrik, Bolter, Dæk, Fælge FROM Hjuldata");
    string hast = ("SELECT Kode, Hastighed FROM Hastighed_indeks");

    private void win_Loaded(object sender, RoutedEventArgs e)
    {
        binddata();
        bindhast();
    }

这个有效

    private void binddata()
    {
        DataTable dt = new DataTable();
        using (SqlDataAdapter adp = new SqlDataAdapter(data, connstring))
        {
            adp.Fill(dt);
            hjuldata.DataContext = dt;
        }
    }

<GridViewColumn Header="Mærke" Width="140" >
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock x:Name="Txt" Text="{Binding Path=Mærke}" Foreground="#FF00FB0B" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>

这个是我遇到麻烦的那个

    private void bindhast()
    {
        DataTable dts = new DataTable();
        using (SqlDataAdapter adph = new SqlDataAdapter(hast, connstring))
        {
            adph.Fill(dts);
            hast_list.DataContext = dts;
        }
    }

 <GridViewColumn Header="Hast Symbol"
 DisplayMemberBinding="{Binding Path=Kode}"
 Width="300"/>
 <GridViewColumn Header="Max Km/t"
  DisplayMemberBinding="{Binding Path=Hastighed}"
                                Width="200"/>

这就是listview的整个代码

<ListView x:Name="hast_list" Background="#FF303030" BorderBrush="#FF303030" Foreground="#FF00FB0B" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" Height="431" Canvas.Left="632" Canvas.Top="34" Width="607">
                    <ListView.View>
                        <GridView>
                            <GridView.ColumnHeaderContainerStyle>
                                <Style TargetType="{x:TypeGridViewColumnHeader}">
                                    <Setter Property="Background" Value="Black" />
                                    <Setter Property="Foreground" Value="#FFEAEAEA" />
                                    <Setter Property="FontWeight" Value="Bold" />
                                </Style>
                            </GridView.ColumnHeaderContainerStyle>
                            <GridViewColumn Header="Hast Symbol"
                                DisplayMemberBinding="{Binding Path=Kode}"
                                Width="300"/>
                            <GridViewColumn Header="Max Km/t"
                                DisplayMemberBinding="{Binding Path=Hastighed}"
                                Width="200"/>
                        </GridView>
                    </ListView.View>
                </ListView>

2 个答案:

答案 0 :(得分:1)

在两个表上设置数据源后调用databind事件。

private void binddata()
{
    DataTable dt = new DataTable();
    using (SqlDataAdapter adp = new SqlDataAdapter(data, connstring))
    {
        adp.Fill(dt);
        hjuldata.DataContext = dt;
        hjuldata.DataBind();
    }
}

private void bindhast()
{
    DataTable dts = new DataTable();
    using (SqlDataAdapter adph = new SqlDataAdapter(hast, connstring))
    {
        adph.Fill(dts);
        hast_list.DataContext = dts;
        hast_list.DataBind();
    }
}

答案 1 :(得分:0)

似乎你不在乎

ItemsSource="{Binding}"

这应该解决它

  <ListView x:Name="hast_list" Background="#FF303030" BorderBrush="#FF303030" Foreground="#FF00FB0B" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" Height="431" Canvas.Left="632" Canvas.Top="34" Width="607" ItemsSource="{Binding}">
                <ListView.View>
                    <GridView>
                        <GridView.ColumnHeaderContainerStyle>
                            <Style TargetType="{x:TypeGridViewColumnHeader}">
                                <Setter Property="Background" Value="Black" />
                                <Setter Property="Foreground" Value="#FFEAEAEA" />
                                <Setter Property="FontWeight" Value="Bold" />
                            </Style>
                        </GridView.ColumnHeaderContainerStyle>
                        <GridViewColumn Header="Hast Symbol"
                            DisplayMemberBinding="{Binding Path=Kode}"
                            Width="300"/>
                        <GridViewColumn Header="Max Km/t"
                            DisplayMemberBinding="{Binding Path=Hastighed}"
                            Width="200"/>
                    </GridView>
                </ListView.View>
            </ListView>