2014-12-06 3 views
0

Я пытаюсь отобразить содержимое базы данных с помощью ListView из файла базы данных .mdf. Вот блок кода, который я использую:ListView и база данных

 connection = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=database.mdf;Integrated Security=True"); 

     SqlDataAdapter dataAdapter; 
     DataTable table; 
     SqlCommand command; 

     command = new SqlCommand("SELECT * FROM movies", connection); 
     dataAdapter = new SqlDataAdapter(command); 
     table = new DataTable(); 
     dataAdapter.Fill(table); 
     moviesListView.ItemsSource = table.DefaultView; 

И это не работает. Я также пробовал DataContext вместо ItemsSource, но это не помогает. Когда я использую DataGrid, с другой стороны, он работает нормально.

Не могли бы вы объяснить причину этого?

С уважением, Vitalii.

+0

Что вы означает, что не работает? Вы получаете сообщение об исключении или ошибке? –

+0

Просто не видите содержимое (ListView пуст). – witua

+0

Глупый вопрос: но вы проверили, содержит ли 'таблица' какие-либо строки? –

ответ

2

Я просто попытался это одно, и он работал на меня:

XAML:

<ListView x:Name="osmanGrid" ItemsSource="{Binding}" HorizontalAlignment="Left" Height="100" Margin="243,289,0,0" VerticalAlignment="Top" Width="191"> 
     <ListView.View> 
      <GridView> 
       <GridViewColumn Header="Time" Width="50" DisplayMemberBinding="{Binding Path=Tid}"/> 
       <GridViewColumn Header="Acceleration" Width="70" DisplayMemberBinding="{Binding Path=Acceleration}"/> 
      </GridView> 
     </ListView.View> 
    </ListView> 

фона класса:

try 
     { 
      using (SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Osman\Documents\osmanDB.mdf;Integrated Security=True;Connect Timeout=30")) 
      { 

       con.Open(); 
       SqlDataAdapter adapvare = new SqlDataAdapter("SELECT * FROM osmanTable", con); 
       System.Data.DataSet dsFald = new System.Data.DataSet(); 
       adapvare.Fill(dsFald, "osmanTable"); 
       osmanGrid.DataContext = dsFald.Tables["osmanTable"].DefaultView; 
      } 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show("Error\n" + ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); 
     } 

Результат:

enter image description here

+0

Как я уже сказал, DataGrid работает нормально. Мне было интересно о ListView. – witua

+0

Просто измените имя таблицы и строку подключения. Также имя столбцов таблицы, к которым вы должны привязываться (DisplayMemberBinding) –

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