如何在拆分DATE和TIME时接受空白值 [英] How to accept blank values while splitting DATE and TIME

查看:36
本文介绍了如何在拆分DATE和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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆