WPF Datagrid不显示所有值

时间:2013-06-19 16:58:38

标签: c# sql wpf wpfdatagrid

我有这样的SQL表,

 Name   |   03.04.2013   |   05.04.2013   |  07.03.2013  |  09.04.2013 
--------|----------------|----------------|--------------|---------------

我想在数据网格中显示此表。

SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Fee", sc2);


DataTable dt = new DataTable();
da.Fill(dt);

datagrid2.ItemsSource = dt.DefaultView;

当我尝试它时,数据网格只显示名称,日期列中的值为空。(AutoGenerateColumns="true"

我添加了mainwindows.xaml源here和xaml代码here

3 个答案:

答案 0 :(得分:0)

试试这个

        SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Fee", sc2);
        DataSet ds = new DataSet();
        da.Fill(ds, "DataGridBind");
        datagrid2.DataContext = ds;

在Xaml

<DataGrid Name="datagrid2" AutoGenerateColumns="True" ItemsSource="{Binding Path=DataGridBind}">

答案 1 :(得分:0)

试试..

string ConString = "Use your database address";
string CmdString = string.Empty;
using (SqlConnection con = new SqlConnection(ConString))
{
    CmdString = "SELECT * FROM Fee";
    SqlCommand cmd = new SqlCommand(CmdString, con);
    SqlDataAdapter sda = new SqlDataAdapter(cmd);
    DataTable dt = new DataTable("Fee");
    sda.Fill(dt);
    datagrid1.ItemsSource = dt.DefaultView;
 }

也可以查看..

答案 2 :(得分:0)

您可以尝试将AutoGenerateColumns设置为False并将绑定添加到自定义列:

<DataGrid x:Name="MyDataGrid" AutoGenerateColumns="False">
   <DataGrid.Columns>                    
         <DataGridTextColumn Header="Name" Binding="{Binding Path=NAME}" IsReadOnly="True" Width="*" />
         <DataGridTextColumn Header="Age" Binding="{Binding Path=AGE}" IsReadOnly="True" Width="*" />
         <DataGridTextColumn Header="Date" Binding="{Binding Path=DATE}" IsReadOnly="True" Width="*" />
   </DataGrid.Columns>
</DataGrid>

有了这个,您还可以创建一个扩展IValueConverter的转换器类,在您的数据中添加某种掩码。