【问题标题】:C# wpf DataGrid Binding Date (convert to Persian Format)C# wpf DataGrid 绑定日期(转换为波斯格式)
【发布时间】:2021-11-09 13:32:36
【问题描述】:

我有一个 DataGrid 视图,它绑定到数据库并像这样从 MySql 数据库中获取信息。

MySqlCommand cmd3 = new MySqlCommand("SELECT * FROM  owner_units  WHERE unit_id =" + UNITID, conn);
                        MySqlDataAdapter adp2 = new MySqlDataAdapter(cmd3);
                        DataSet ds2 = new DataSet();
                        adp2.Fill(ds2, "LoadDataBinding2");
                        owner_unit.DataContext = ds2;

然后我像这样将数据库中的数据添加到我的 DataGrid 视图中。

<DataGrid HorizontalAlignment="Left" Name="owner_unit"  ItemsSource="{Binding LoadDataBinding2}" AutoGenerateColumns="False" IsReadOnly="True" CanUserAddRows="False" Height="99" Margin="36,463,0,0" VerticalAlignment="Top" Width="420">
        <DataGrid.Columns>
            <DataGridTextColumn Binding="{Binding id}" Header="OwnerID" Width="100" IsReadOnly="True" />
            <DataGridTextColumn Binding="{Binding percent}" Header="Percentage" Width="100" IsReadOnly="True" />
            <DataGridTextColumn Binding="{Binding register_date}" Header="sell date " Width="200" IsReadOnly="True" />

        </DataGrid.Columns>
    </DataGrid>

我的问题是我的名为 register_date 的数据库列在 Miladi 日期 (2021/11/09) 中,我想将其更改为波斯 (Shamsi) 日期 (18/08/1400)。

【问题讨论】:

标签: c# mysql wpf date


【解决方案1】:

我找到了这个解决方案, 因为在数据库中所有日期都是 UTC,但我的客户想要查看和插入波斯日期,我将此代码用于我的 Datagridview:

 <DataGridTextColumn Binding="{Binding Path=created_at, StringFormat=yyyy/mm/dd, ConverterCulture=fa-IR}" Header="تاریخ پرداخت" Width="150" IsReadOnly="True" />

我在数据库中插入波斯日期作为 UTC 日期我使用这个:

var value = PersianDate.Text;
        // Convert to Miladi
        DateTime dt = DateTime.Parse(value, new CultureInfo("fa-IR"));
        // Get Utc Date
        var dt_utc = dt.ToUniversalTime();

将我的 PersianDate 文本框更改为 UTC 日期,以便我可以插入数据库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2018-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多