C# 在WPF应用程序的DataGrid中显示SQL查询的结果
查询的结果在SqlDataReader中,它可以具有灵活的列数和大量的行数C# 在WPF应用程序的DataGrid中显示SQL查询的结果,c#,sql,wpf,xaml,datagrid,C#,Sql,Wpf,Xaml,Datagrid,查询的结果在SqlDataReader中,它可以具有灵活的列数和大量的行数 string mySQLQuery= "select * from myTable"; SqlCommand myTableCommand = new SqlCommand(mySQLQuery, MyConnection); SqlDataReader myReader = null; myReader = myTableCommand.ExecuteReader(); 我想做的是在DataGri
string mySQLQuery= "select * from myTable";
SqlCommand myTableCommand = new SqlCommand(mySQLQuery, MyConnection);
SqlDataReader myReader = null;
myReader = myTableCommand.ExecuteReader();
我想做的是在DataGrid中显示结果。.xaml部分如下所示:
<DataGrid Name="myDataGrid" SelectionMode="Extended" SelectionUnit="Cell" AutoGenerateColumns="True" AlternatingRowBackground="LightCyan"
ItemsSource="{Binding}" IsEnabled="True" IsReadOnly="True" Background="WhiteSmoke" Margin="13,27,8,110" CanUserSortColumns="True">
</DataGrid>
ID | Name | Country | City
------------------------------------
123 | John | England | London
------------------------------------
456 | Jane | Ireland | Dublin
... ... ... ...
此链接中的所有答案都有助于:
解决方案: 多亏了“user1672994”,此解决方案现在可以工作了:
string mySQLQuery= "select * from myTable";
SqlCommand myTableCommand = new SqlCommand(mySQLQuery, MyConnection);
DataTable dt = new DataTable();
SqlDataAdapter a = new SqlDataAdapter(myTableCommand );
a.Fill(dt);
myDataGrid.ItemsSource = dt.DefaultView;
解决方案: 多亏了“user1672994”,此解决方案现在可以工作了:
string mySQLQuery= "select * from myTable";
SqlCommand myTableCommand = new SqlCommand(mySQLQuery, MyConnection);
DataTable dt = new DataTable();
SqlDataAdapter a = new SqlDataAdapter(myTableCommand );
a.Fill(dt);
myDataGrid.ItemsSource = dt.DefaultView;
尝试使用
DataTable
添加行和列,然后将DataTable指定为网格的ItemsSource
属性。在XAML中,您不需要ItemsSource=“{Binding}
。@user1672994谢谢。这似乎是一个很好的解决方案,但我得到了一些奇怪的结果;一个包含以下列的表:“rowrerror,RowState,table,ItemArray,hasrerrors
“。为了将DataTable分配给myDataGrid.ItemsSource,我必须首先将DataTable转换为IEnumerable。所以我这样做了:myDataGrid.ItemsSource=myDataTable.AsEnumerable()代码>没有错误,但正如我所说,结果很奇怪。尝试使用DataTable
添加行和列,然后将DataTable指定为网格的ItemsSource
属性。在XAML中,您不需要ItemsSource=“{Binding}
。@user1672994谢谢。这似乎是一个很好的解决方案,但我得到了一些奇怪的结果;一个包含以下列的表:“rowrerror,RowState,table,ItemArray,hasrerrors
“。为了将DataTable分配给myDataGrid.ItemsSource,我必须首先将DataTable转换为IEnumerable。所以我这样做了:myDataGrid.ItemsSource=myDataTable.AsEnumerable()代码>没有错误,但正如我所说,结果很奇怪。