C# 来自SQL Server的WPF C Datagrid更新列
我想将数据从SQLManagementStudio获取到datagrid,但它不起作用。 首先我有一节课: 人 在那里我得到了第一个名字和第二个名字C# 来自SQL Server的WPF C Datagrid更新列,c#,sql-server,wpf,datagrid,C#,Sql Server,Wpf,Datagrid,我想将数据从SQLManagementStudio获取到datagrid,但它不起作用。 首先我有一节课: 人 在那里我得到了第一个名字和第二个名字 class Person { public string firstName { get; set; } public string secondName { get; set; } } 我已经创建了一个按钮,用于连接数据库,使用select查询并刷新数据库 string dbConnectionString =
class Person
{
public string firstName { get; set; }
public string secondName { get; set; }
}
我已经创建了一个按钮,用于连接数据库,使用select查询并刷新数据库
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>
不幸的是,它没有起作用。你知道我该怎么解决这个问题吗?在这一刻,当我点击按钮时,什么也没有发生
问候。您可以尝试将您的列表切换为可观察的集合,并更改该集合
dataGrid.DataContext = personList;
到
告诉我这是否有效,在您可以绑定Datagrid的itemsource以不创建新的ObservableCollection并直接添加您的Person之后。因为firstName和SecondName不是List对象的属性。非常感谢,这很有效。但此时只有第一列firstName设置了数据,第二列为空。因为xaml的绑定是错误的,所以应该是:Path=secondName}
dataGrid.ItemSource = personList;