ListView和数据库
问题描述:
我想从.mdf数据库文件中使用ListView显示数据库内容。这里是我使用的代码块: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时,它工作正常。
请问您能解释一下原因吗?
Regards, Vitalii。
答
我只是想这一个,和它的工作对我来说:
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);
}
结果:
+0
正如我所说的,DataGrid工作正常。我想知道关于ListView。 – witua 2014-12-06 18:18:42
+0
只需更改您的sql表名和连接字符串。此外,您必须绑定到的表列的名称(DisplayMemberBinding) – 2014-12-06 18:35:50
什么你做 意思是_not working_?您收到异常或错误讯息? – 2014-12-06 18:02:01
只是看不到内容(ListView为空)。 – witua 2014-12-06 18:03:52
愚蠢的问题:但是,你是否检查'table'是否实际上包含任何行? – 2014-12-06 18:06:06