【问题标题】:Fill datagrid specific defined columns from mysql从 mysql 填充 datagrid 特定定义的列
【发布时间】:2017-01-04 04:26:16
【问题描述】:

我有一个包含 7 个已定义列的 DataGrid 我想从 MySQL 数据库中填充 4 个主题,所以我尝试了这个:

XAML

<UserControl x:Class="Stock.Resource.Transaction.Vente"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mui="http://firstfloorsoftware.com/ModernUI"
         xmlns:Controls="http://metro.mahapps.com/winfx/xaml/controls"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:local="clr-namespace:Stock.Resource.Transaction"
         mc:Ignorable="d" 
         d:DesignHeight="530" d:DesignWidth="1218">
<Grid>
    <DatePicker x:Name="Date" HorizontalAlignment="Left" Margin="10,94,0,0" VerticalAlignment="Top" Width="200"/>
    <ComboBox x:Name="Vendeur" Controls:TextBoxHelper.Watermark="Selectionner un Vendeur" HorizontalAlignment="Left" Margin="10,151,0,0" VerticalAlignment="Top" Width="200"/>
    <Button x:Name="Effect" Content="Effectué" HorizontalAlignment="Left" Margin="135,211,0,0" VerticalAlignment="Top" Width="75" Click="Effect_Click"/>
    <DataGrid x:Name="Produit" HorizontalAlignment="Left" Margin="240,64,0,0" VerticalAlignment="Top" MaxHeight="456" MaxWidth="968">
        <DataGrid.Columns>
            <DataGridTextColumn IsReadOnly="True" Header="Produit" Binding="{Binding Produit}"/>
            <DataGridTextColumn IsReadOnly="True" Header="Stock" Binding="{Binding Stock}"/>
            <DataGridTextColumn IsReadOnly="True" Header="Prix" Binding="{Binding Prix}"/>
            <DataGridTextColumn Header="Quantié"/>
            <DataGridTextColumn IsReadOnly="True" Header="Prix Unitaire" Binding="{Binding Prix Unitaire}"/>
            <DataGridTextColumn Header="Unitée"/>
            <DataGridTextColumn IsReadOnly="True" Header="Totale"/>
        </DataGrid.Columns>
    </DataGrid>
</Grid>
</UserControl>

C#

public void FillGrid(DataGrid data, string query)
{
        try
        {
            MySqlConnection connection = new MySqlConnection(ConStr().ToString());
            connection.Open();
            MySqlCommand cmd = new MySqlCommand(query, connection);
            cmd.ExecuteNonQuery();
            MySqlDataAdapter da = new MySqlDataAdapter(cmd);
            DataTable dt = new DataTable("concour");
            da.Fill(dt);
            data.ItemsSource = dt.DefaultView;
            da.Update(dt);
            connection.Close();
        }
        catch (Exception ex)
        {
            var v = new ModernDialog
            {
                Title = "Error",
                Content = ex.Message
            };
            v.Buttons = new Button[] { v.OkButton };
            var r = v.ShowDialog();
        }
}

只要我得到想要填充的双列,它就可以正常工作。

这是我使用的查询:

SELECT 
    designation As 'Produit', stock As 'Stock', 
    prix As 'Prix', prixu As 'Prix Unitaire' 
FROM 
    produit 
WHERE 
    DELETED = 'N';

【问题讨论】:

  • “我得到双列”是什么意思?
  • 在数据网格中,我得到了 2 个名为 produit 的 clulns,2 个名为 Stock 和 2 个名为 Prix,2 个名为 Prix Unitaire
  • 将AutoGenerateColumns 设置为false。
  • 而且我不知道“Prix Unitaire”是否可以用作绑定。最好将字段名称更改为“Prix_Unitaire”。
  • 它甚至适用于“Prix Unitaire”thnx。你能帮我解决一下stackoverflow.com/questions/39184976/… 吗??

标签: c# mysql datagrid


【解决方案1】:

只需将AutoGenerateColumns 设置为false。

【讨论】:

    猜你喜欢
    • 2012-02-27
    • 2019-03-31
    • 1970-01-01
    • 1970-01-01
    • 2016-07-07
    • 2022-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多