如何在拆分DATE和TIME时接受空白值 [英] How to accept blank values while splitting DATE and TIME
问题描述
我写了一个程序,将日期和时间从1列拆分为2个不同的列。
如果我有日期时间字段中的空白值,拆分功能不起作用。
它给出了错误,指出FormatException未处理对于下面提到的行:
DateTime Time = Convert.ToDateTime(column [i] .ToString());
请让我知道我必须纠正的地方。
该功能的总代码是:
private void btnSplit_Click(object sender,EventArgs e)
{
DataGridViewTextBoxColumn dgvcdate = new DataGridViewTextBoxColumn();
dgvcdate.Name = cmbColumnCombo.Text;
dgvcdate.HeaderText = cmbColumnCombo.Text ;
dataGridView1.Columns.Add(dgvcdate);
DataGridViewTextBoxColumn dgvctime = new DataGridViewTextBoxColumn();
dgvctime.Name = txtColumnName.Text.Replace(,);
dgvctime.HeaderText = txtColumnName.Text;
dataGridView1.Columns.Add(dgvctime);
for(int RowCount = 1; RowCount< = strfile.Length - 1; RowCount ++)
{
if(strfile [RowCount] .ToString()!=)
{
if(RowCount!= 0)
{
string [] column = strfile [RowCount] .Split('þ');
for(int i = 1; i< column.Length - 1; i ++)
{
if(cmbColumnCombo.SelectedIndex ==((i - 1)/ 2 ))
{
if(column [i] .ToString()!=\ u0014)
{
dataGridView1.Rows.Add();
DateTime Time = Convert.ToDateTime(column [i] .ToString());
dataGridView1.Rows [RowCount - 1] .Cells [txtColumnName.Text.Replace(,)]。Value = Time.T oString(HH:mm:ss);
dataGridView1.Rows [RowCount - 1] .Cells [cmbColumnCombo.Text] .Value = Time.ToString(dd / MM / yyyy);
//dataGridView1.Rows [RowCount - 1] .Cells [cmbColumn1.Text] .Value + = column [i] .ToString();
}
}
}
}
}
}
}
Hi,
I wrote a program to split the Date and Time as 2 different columns from 1 column.
If i have a blank value in datetime field, the split functionality is not working.
It's giving error stating "FormatException was unhandled" for below mentioned line:
DateTime Time = Convert.ToDateTime(column[i].ToString());
Please let me know where i have to correct.
Total code for that functionality is:
private void btnSplit_Click(object sender, EventArgs e)
{
DataGridViewTextBoxColumn dgvcdate = new DataGridViewTextBoxColumn();
dgvcdate.Name = cmbColumnCombo.Text;
dgvcdate.HeaderText = cmbColumnCombo.Text;
dataGridView1.Columns.Add(dgvcdate);
DataGridViewTextBoxColumn dgvctime = new DataGridViewTextBoxColumn();
dgvctime.Name = txtColumnName.Text.Replace(" ", "");
dgvctime.HeaderText = txtColumnName.Text;
dataGridView1.Columns.Add(dgvctime);
for (int RowCount = 1; RowCount <= strfile.Length - 1; RowCount++)
{
if (strfile[RowCount].ToString() != "")
{
if (RowCount != 0)
{
string[] column = strfile[RowCount].Split('þ');
for (int i = 1; i < column.Length - 1; i++)
{
if (cmbColumnCombo.SelectedIndex == ((i - 1) / 2))
{
if (column[i].ToString() != "\u0014")
{
dataGridView1.Rows.Add();
DateTime Time = Convert.ToDateTime(column[i].ToString());
dataGridView1.Rows[RowCount - 1].Cells[txtColumnName.Text.Replace(" ", "")].Value = Time.ToString("HH:mm:ss");
dataGridView1.Rows[RowCount - 1].Cells[cmbColumnCombo.Text].Value = Time.ToString("dd/MM/yyyy");
//dataGridView1.Rows[RowCount - 1].Cells[cmbColumn1.Text].Value += column[i].ToString();
}
}
}
}
}
}
}
推荐答案
首先检查你得到的值是否为空
First Check if the value you get is null
if(column[i]!=null)
{
//convert to datetime
}
希望它可以帮助你..
hope it helps you..
试试这个:
DateTime dt;
DateTime Time = DateTime.TryParse(ToDateTime(column[i].ToString(), out dt));
if(dt == null)
{
// handle invalid date
// throw error ?
// use 'continue to proceed with column entry ?
}
else
{
// valid date present in 'dt
}
这篇关于如何在拆分DATE和TIME时接受空白值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!