gpt4 book ai didi

mysql - 当我从 MySql 导入日期值时,DataGrid 显示日期时间

转载 作者:行者123 更新时间:2023-11-28 23:31:22 25 4
gpt4 key购买 nike

在我的 WPF 应用程序中,我有一个 DataGrid,它显示来自 MySql 数据库的表格,列的类型为 DATE,但是当我填充 dataGrid 时,它显示 DateTime(表格中的值和 12:00:00)。

XAML

<UserControl x:Class="Projet.Recources0.Etudiant.Interne.Ajouter"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mui="http://firstfloorsoftware.com/ModernUI"
xmlns:controls="http://metro.mahapps.com/winfx/xaml/controls"
mc:Ignorable="d"
d:DesignHeight="500" d:DesignWidth="1000">
<Grid>
<TextBox x:Name="Matricule" controls:TextBoxHelper.Watermark="Matricule" controls:TextBoxHelper.ClearTextButton="True" HorizontalAlignment="Left" Height="23" Margin="25,71,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="225"/>
<TextBox x:Name="Nom" controls:TextBoxHelper.Watermark="Nom" controls:TextBoxHelper.ClearTextButton="True" HorizontalAlignment="Left" Height="23" Margin="25,102,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="225"/>
<TextBox x:Name="Prenom" controls:TextBoxHelper.Watermark="Prenom" controls:TextBoxHelper.ClearTextButton="True" HorizontalAlignment="Left" Height="23" Margin="25,133,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="225"/>
<TextBox x:Name="E_mail" controls:TextBoxHelper.Watermark="E-mail" controls:TextBoxHelper.ClearTextButton="True" HorizontalAlignment="Left" Height="23" Margin="25,164,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="225"/>
<ComboBox x:Name="Sex" controls:TextBoxHelper.Watermark="Sexe" HorizontalAlignment="Left" Margin="25,195,0,0" VerticalAlignment="Top" Width="225"/>
<DatePicker x:Name="D_N" HorizontalAlignment="Left" Margin="25,226,0,0" VerticalAlignment="Top" Width="100" Height="27"/>
<TextBox x:Name="L_N" controls:TextBoxHelper.Watermark="Lieux de Naissance" controls:TextBoxHelper.ClearTextButton="True" HorizontalAlignment="Left" Height="23" Margin="130,228,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="120"/>
<TextBox x:Name="Addrs" controls:TextBoxHelper.Watermark="Addresse" controls:TextBoxHelper.ClearTextButton="True" HorizontalAlignment="Left" Height="23" Margin="25,259,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="225"/>
<controls:NumericUpDown x:Name="Consiel" Minimum="0" Maximum="20" Interval="1" Margin="25,290,750,174"/>
<controls:NumericUpDown x:Name="Redouble" Minimum="0" Maximum="20" Interval="1" Margin="25,331,750,133"/>
<Button x:Name="Ajouter_Interne" Content="Ajouter" HorizontalAlignment="Left" Margin="172,400,0,0" VerticalAlignment="Top" Width="93" Click="Ajouter_Interne_Click" />
<DataGrid x:Name="Interne" IsReadOnly="True" AutoGenerateColumns="True" CanUserReorderColumns="True" CanUserResizeColumns="True" CanUserResizeRows="False" CanUserSortColumns="True" HorizontalAlignment="Left" Margin="288,48,0,0" VerticalAlignment="Top" Height="345" Width="652"/>
</Grid>
</UserControl>

在表中输入

private void Ajouter_Interne_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show(Code);
String in_Mat = Matricule.Text;
String in_nom = Nom.Text;
String in_prenom = Prenom.Text;
String in_email = E_mail.Text;
String Sexe = "";
if (Sex.Text == "Homme")
Sexe = "H";
else if (Sex.Text == "Femme")
Sexe = "F";
String in_date = D_N.SelectedDate.Value.ToString("yyyyMMdd");
String in_Lieux = L_N.Text;
String in_Adrs = Addrs.Text;
int in_Redouble = (int)Redouble.Value;
int in_Consiel = (int)Consiel.Value;
String CPI_Code = Code;
String UserName = in_Mat;
String Password = RandomString(10);
MySqlConnection connection = new MySqlConnection(cnx_string);
connection.Open();
string newcon_sql = "INSERT INTO `gestion_concour`.`interne` (`Matricule`, `Nom`, `Prenom`, `E_mail`, `Sexe`, `Date_Naissance`, `Lieu_Naissance`, `Address`, `Redoublement`, `Consiel`, `CPI_Code`) VALUES (@Mat, @Nom, @Prenom, @Email, @SEXE, @DN, @LN, @Adrs, @Redouble, @Consiel, @CPI_Code);";
MySqlCommand newcon = new MySqlCommand(newcon_sql, connection);
newcon.CommandText = newcon_sql;
newcon.Parameters.AddWithValue("@Mat", in_Mat);
newcon.Parameters.AddWithValue("@Nom", in_nom);
newcon.Parameters.AddWithValue("@Prenom", in_prenom);
newcon.Parameters.AddWithValue("@Email", in_email);
newcon.Parameters.AddWithValue("@SEXE", Sexe);
newcon.Parameters.AddWithValue("@DN", in_date);
newcon.Parameters.AddWithValue("@LN", in_Lieux);
newcon.Parameters.AddWithValue("@Adrs", in_Adrs);
newcon.Parameters.AddWithValue("@Redouble", in_Redouble);
newcon.Parameters.AddWithValue("@Consiel", in_Consiel);
newcon.Parameters.AddWithValue("@CPI_Code", CPI_Code);
newcon.ExecuteNonQuery();
String CCode = Concour_Code;
String qq = "INSERT INTO `gestion_concour`.`condidat_concour` (`Matricule`, `Nom`, `Prenom`, `E_mail`, `password`, `Sexe`, `Date_Naissence`, `Lieu_Naissence`, `Address`, `Username`, `Redoublement`, `Consiel`, `Rattrapage`, `Concour_Code`) VALUES (@Matricule, @Nom, @Prenom, @E_mail, @password, @Sexe, @Date_Naissence, @Lieu_Naissence, @Address, @Username, @Redoublement, @Consiel, @Rattrapage, @Concour_Code);";
MySqlCommand cmd = new MySqlCommand(qq, connection);
cmd.CommandText = qq;
cmd.Parameters.AddWithValue("@Matricule", in_Mat);
cmd.Parameters.AddWithValue("@Nom", in_nom);
cmd.Parameters.AddWithValue("@Prenom", in_prenom);
cmd.Parameters.AddWithValue("@E_mail", in_email);
cmd.Parameters.AddWithValue("@password", Password);
cmd.Parameters.AddWithValue("@Sexe", Sexe);
cmd.Parameters.AddWithValue("@Date_Naissence", in_date);
cmd.Parameters.AddWithValue("@Lieu_Naissence", in_Lieux);
cmd.Parameters.AddWithValue("@Address", in_Adrs);
cmd.Parameters.AddWithValue("@Username", UserName);
cmd.Parameters.AddWithValue("@Redoublement", in_Redouble);
cmd.Parameters.AddWithValue("@Consiel", in_Consiel);
cmd.Parameters.AddWithValue("@Rattrapage", null);
cmd.Parameters.AddWithValue("@Concour_Code", CCode);
cmd.ExecuteNonQuery();
connection.Close();
fill_grid(Interne, "SELECT * FROM gestion_concour.interne;");
Email.Email_Sender(in_email, Password, UserName);
Matricule.Clear();
Nom.Clear();
Prenom.Clear();
E_mail.Clear();
L_N.Clear();
Addrs.Clear();
}

从表中输出

 public void fill_grid(DataGrid dg, string query)
{
try
{
//conneter à la base de donnée (gestion_concour)
MySqlConnection connection = new MySqlConnection(cnx_string);
connection.Open();
MySqlCommand cmd = new MySqlCommand(query, connection);
cmd.ExecuteNonQuery();
MySqlDataAdapter da = new MySqlDataAdapter(cmd);
DataTable dt = new DataTable("concour");
da.Fill(dt);
dg.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();
}
}

结果总是这样 Result

最佳答案

“问题”在这里:

<DataGrid x:Name="Interne" IsReadOnly="True" AutoGenerateColumns="True" CanUserReorderColumns="True" CanUserResizeColumns="True" CanUserResizeRows="False" CanUserSortColumns="True" HorizontalAlignment="Left" Margin="288,48,0,0" VerticalAlignment="Top" Height="345" Width="652"/>

解决方案是单独生成列,这样您就可以控制它们的视觉效果。例如像这样:

<DataGrid Height="150" ItemsSource="{Binding MyCollection, UpdateSourceTrigger=PropertyChanged}"
AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Descrição" IsReadOnly="True" SortMemberPath="DescricaoServico" CanUserSort="True" MinWidth="260">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding DescricaoServico}" VerticalAlignment="Center" HorizontalAlignment="Left"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

<DataGridTemplateColumn Header="My Date" IsReadOnly="True" SortMemberPath="MyDateProperty" CanUserSort="True" MinWidth="260">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding MyDateProperty, StringFormat={}{0:dd/MM/yyyy}}" VerticalAlignment="Center" HorizontalAlignment="Left"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

</DataGrid>

这会将“MyDateProperty”列显示为 dd/MM/yyyy

关于mysql - 当我从 MySql 导入日期值时,DataGrid 显示日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37215859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com