2016-05-04 3 views
0

как я могу получить данные из таблицы SQL в мой другой ListView я получил его на работу с данными, но не может заставить его работать с есикак получить данные из другого DataTable

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> 
+0

Если вы хотите один набор данных, который считывает из нескольких таблиц ... тогда soiunds как вы хотите [ JOIN] (https://en.wikipedia.org/wiki/Join_%28SQL%29) – paulsm4

+0

Почему вы ставите '(' и ')' вокруг своих строковых констант? – Hogan

+0

на win_loaded, если вы запустили bindhast() перед binddata(), имеет ли он такое же поведение? –

ответ

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> 
1

Вызовите событие привязки данных после установки источника данных для обеих таблиц.

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(); 
    } 
} 
+0

дает мне ошибку «ListView» не содержит определения для «DataBind» и никакого метода расширения «DataBind» «можно принять первый аргумент типа« ListView »(вам не хватает директивы using или ссылки на сборку? –

+0

« Принятие первого аргумента Type ListView »? Нет аргументов. Если вы пытаетесь передать ListView как параметр, не делайте этого. Делайте это только так, как я написал. – JSON

+0

Я снова попытался с копией и все еще получил ту же ошибку –

Смежные вопросы