1
私のWPFアプリケーションでは、MySqlデータベースのテーブルを表示するDataGridがありますが、列はDATE型ですが、dataGridを入力すると、 12:00:00)。表中DataGridは、DateTimeをMySqlからインポートするときにDateTimeを表示します。
は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();
}
}
結果から入れ
A複製? [この回答](http://stackoverflow.com/questions/7978249/date-formatting-in-wpf-datagrid)と[日付の書式設定のwpf-datagrid](http://stackoverflow.com/a/ 16554340/1506454) – ASh