WPF 和 SQL Server 2008 R2 数据库

Posted

技术标签:

【中文标题】WPF 和 SQL Server 2008 R2 数据库【英文标题】:WPF and SQL Server 2008 R2 DB 【发布时间】:2012-02-18 12:30:38 【问题描述】:

现在当我按下按钮时,数据不会显示在列表框中,有什么帮助吗? 我想从数据库中获取数据并将其显示在列表框中,以便用户可以从中选择项目。 我正在使用 WPF 和 SQL Server 2008 R2 ..

private void button1_Click(object sender, RoutedEventArgs e)

        SqlConnection myConnection = new SqlConnection("user id=userid;" +
                                   "password=password;server=localhost;" +
                                   "Trusted_Connection=yes;" +
                                   "database=db1; " +
                                   "connection timeout=30");

        DataSet ds = new DataSet();
        SqlDataAdapter da = new SqlDataAdapter();
        try
        
            myConnection.Open();

        
        catch (Exception ex)
        
            textBlock1.Text = "" + (ex.ToString());
        

        da.SelectCommand = new SqlCommand("Select * FROM Products", myConnection);
        da.Fill(ds,"Products");
        listBox1.DataContext = ds;

    

【问题讨论】:

【参考方案1】:

首先,它可能更容易绑定到 itemsSource 而不是 datacontext

其次,您尝试将列表框直接绑定到数据集,我认为这是不可能的。我将创建一个 dataview 属性并将其设置为 ds.Tables[0].DefaultView。然后在您的列表框 xaml 代码中显示放置的列:

<ListView ItemsSource="Binding Path=myDataViewProperty">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="Column1"  DisplayMemberBinding="Binding Column1"/>
            <GridViewColumn Header="Column2" DisplayMemberBinding="Binding Column2"/>
        </GridView>
    </ListView.View>
</ListView>

第三,你确定列表框是最适合你想要显示的控件吗?数据网格可能是更好的选择。

【讨论】:

【参考方案2】:

你必须定义你的绑定,单独设置 DataContext 不会填充数据,它只是声明绑定数据的来源。

<ListBox ItemsSource="Binding Tables[0]">
  <ListBox.ItemTemplate>
    <DataTemplate>
      <TextBlock Text="Binding ProductName"/>
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>

或者如果您只想在列表框中显示单个值:

<ListBox ItemsSource="Binding Tables[0]" DisplayMemberPath="ProductName"/>

【讨论】:

以上是关于WPF 和 SQL Server 2008 R2 数据库的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server2008和SQL Server2008R2的区别,高手速进

数据库SQL server 2008 R2和SQL server 2008 能一起安装吗?为啥安装完只剩SQL server 2008 R2一个了?

windows 2012 r2怎么安装sql server 2008 r2

SQL Server 2008 R2 Express三个版本有啥区别?

sql server2008升级到2008 R2出现问题

从开发人员的 POV 看 SQL Server 2008 和 SQL Server 2008 R2 之间的差异