WPF C#数据网格从SQL Server更新列

本文关键字:SQL Server 更新 网格 数据 数据网 WPF | 更新日期: 2023-09-27 18:24:58

我想将数据从SQL Management Studio获取到数据网格,但它不起作用。首先我有一门课:

个人

在那里我得到了firstName和secondName。

class Person
{
    public string firstName { get; set; }
    public string secondName { get; set; }
}

我已经创建了一个按钮,用于连接数据库,使用选择查询和刷新数据库。

        string dbConnectionString = @"Data Source=Username'SQLEXPRESS;Initial Catalog=TestDatabase;Integrated Security=True";
        SqlConnection con = new SqlConnection(dbConnectionString);
        con.Open();
        string sqllogin = "SELECT firstName,secondName FROM TestDatabase.[dbo].[Persons]";
        SqlCommand cmd = new SqlCommand(sqllogin, con);
        SqlDataReader reader = cmd.ExecuteReader();

        List<Person> personList;
        personList = new List<Person>();
        while (reader.Read())
        {
            Person p = new Person();
            p.firstName = reader.GetString(0);
            p.secondName = reader.GetString(1);
            personList.Add(p);
        }
        dataGrid.DataContext = personList;

XAML看起来是这样的:

<DataGrid.Columns>
            <DataGridTextColumn Binding="{Binding Path=firstName}" Header="Name" MinWidth="100"/>
            <DataGridTextColumn Binding="{Binding Path=secondtName}" Header="Second Name" MinWidth="100"/>
</DataGrid.Columns>

不幸的是,它没有起作用。知道我该怎么解决这个问题吗?此时此刻,当我点击按钮时,什么也没发生。

谨致问候。

WPF C#数据网格从SQL Server更新列

您可以尝试将您的List切换到ObservableCollection并更改

dataGrid.DataContext = personList;

dataGrid.ItemSource = personList;

告诉我它是否有效,并且在您可以绑定Datagrid的itemsource以不创建新的ObservableCollection之后,直接添加您的"Person"。