我有一个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位于米拉迪日期(2021/11/09(,我想将其更改为波斯(Shamsi(日期(18/08/1400(。
我找到了这个解决方案,由于数据库中的所有日期都是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日期,以便我可以插入数据库。