窗体FORM1中有DataGrid控件 和数据库绑定,其中有一自段是出生日期,数据库中的类型为DATATIME
但是当我从DataGrid中选定的行中读出此字段想要把他赋给一个静态DataTime变量,然后在另一个窗体中引用此变量赋dateTimePicker.Value,问题是DataGrid读出的不是DataTime类型,赋值出错!,应该怎么操作;我this.dateTimePicker3.Value=Form1.EmpInfo.pbyrq
EmpInfo.pcsrq=(DateTime)this.dataGrid1[row,14].ToString().Trim();
这样不能转换!解决不了啊,求救

解决方案 »

  1.   

    忘了说Form1.EmpInfo.pbyrq是结构体里的一个静态变量上面语句写反了:在FORM1中
    EmpInfo.pcsrq=(DateTime)this.dataGrid1[row,14].ToString().Trim();另一个窗体中
    this.dateTimePicker3.Value=Form1.EmpInfo.pbyrq
      

  2.   

    DateTime.Parse(this.dataGrid1[row,14].ToString().Trim())
      

  3.   

    应该是日期格式的问题吧。
    建议:
    采用ODBC标准的格式。也就是yyyy-MM-dd HH:mm:ss来做。
    从数据库中读出数据的时候,格式化一次:SELECT Convert(varchar, Birthday, 120)。
      

  4.   

    貌似也有Convert.ToDateTime()这个方法吧。楼主自己看看。
      

  5.   

    EmpInfo.pcsrq=(DateTime)this.dataGrid1[row,14].ToString().Trim();   //不对可以修改成:
    EmpInfo.pcsrq=(DateTime)this.dataGrid1[row,14];还有,在将EmpInfo.pcsrq赋值给DateTimePicker时,需要先判断EmpInfo.pcsrq是否在DateTimePicker的MinValue和MaxValue之间,否则会引发异常。
    (注意:DateTime和DateTimePicker的MinValue,MaxValue是不一样的。)
      

  6.   

    this.dateTimePicker3.Value=Convert.ToDateTime(this.dataGrid1[row,14])
      

  7.   

    http://blog.csdn.net/califord/archive/2006/03/03/614439.aspx
    你看看
      

  8.   


    恩我写成这样了 可以了哈哈谢谢大家,结了给分
    if(this.dataGrid1[row,14]==System.DBNull.Value)
    {
    EmpInfo.pcsrq=System.DateTime.Now;
    }
    else
    {
    EmpInfo.pcsrq=System.Convert.ToDateTime(this.dataGrid1[row,14]);
    }