2017-11-09 16 views
0

まず、私はそれが日付場合、私は私のDataGridViewにしたい日時のDataTable変換行のdatetime

である私がコラム「SonGirisTarihi」を持っている私は、データベース内のデータを取っています:)私の悪い英語のために謝罪"bla bla"のような文字列を書き込んでいますが、行がdatetimeなので、行を変換できるのでエラーです。私はここでNullValueプロパティを使用してのPlutonixの提案を使用してコードサンプルがあります

dataGridView1.AutoGenerateColumns = false; 
DataTable dt = db.GetDataSet("musteri").Tables["musteri"]; 

foreach (DataRow Row in dt.Rows) { 
    if (Row["SonGirisTarihi"] == DBNull.Value) //SonGirisTarihi is datetime 
    { 
      Row["SonGirisTarihi"] = "blabla"; 
    } 
} 
dataGridView1.DataSource = dt; 
dataGridView1.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft; 
db.disconnect(); 
+1

DGV行をループしません。あなたのDGVには、CellFormattingイベントのようなものが使われています。また、 "bla bla"をnull/emptyに戻すために、Parsingイベントに応答する必要があります。 – Plutonix

+1

'DataGridView'のコードを投稿してください。行の上でそれを行うのではなく、グリッドの列に直接配置する必要があります。 –

+0

Racil Hilan Plutonix thx dude – foradream

答えて

0

を伝えることができます願っています。

using System; 
using System.ComponentModel; 
using System.Windows.Forms; 

namespace DataGridViewDateTime_47208900 
{ 
    public partial class Form1 : Form 
    { 

     BindingList<dgvEntry> dgvDataSource = new BindingList<dgvEntry>(); 
     DataGridView dgv = new DataGridView(); 

     public Form1() 
     { 
      InitializeComponent(); 
      InitDGV(); 
      AddData(); 
     } 

     private void AddData() 
     { 
      for (int i = 0; i < 10; i++) 
      { 
       dgvEntry entry = new dgvEntry(); 
       entry.name = $"name {i}"; 
       entry.id = i; 
       //add DateTime to only some of the entries to get some null values 
       if (i % 2 > 0) 
       { 
        entry.dateTime = DateTime.Now; 
       } 
       dgvDataSource.Add(entry); 
      } 
     } 

     private void InitDGV() 
     { 
      dgv.Dock = DockStyle.Top; 
      dgv.AutoGenerateColumns = false; 
      DataGridViewColumn dgvc = new DataGridViewTextBoxColumn(); 
      dgvc.DataPropertyName = "name"; 
      DataGridViewColumn dgvc2 = new DataGridViewTextBoxColumn(); 
      dgvc2.DataPropertyName = "id"; 
      DataGridViewColumn dgvc3 = new DataGridViewTextBoxColumn(); 
      dgvc3.DataPropertyName = "dateTime"; 
      dgvc3.DefaultCellStyle.NullValue = "bla bla bla"; //What to do when the value is null 
      dgv.Columns.Add(dgvc); 
      dgv.Columns.Add(dgvc2); 
      dgv.Columns.Add(dgvc3); 
      dgv.DataSource = dgvDataSource; 
      this.Controls.Add(dgv); 
     } 
    } 

    public class dgvEntry 
    { 
     public string name { get; set; } 
     public int id { get; set; } 
     public DateTime? dateTime { get; set; } 
    } 
}