当前位置:编程学习 > C#/ASP.NET >>

关于DateTime的问题

我SQL时间格式是datetime ,但是我用WINFORE 连接时间时候
DateTime dt = Convert.ToDateTime(dtpcsrq.Text);//日期
            string date = string.Format("{0}-{1}-{2}", dt.Year, dt.Month, dt.Day);
老是报错,求高手 --------------------编程问答-------------------- DateTime dt = Convert.ToDateTime(dtpcsrq.Text);//日期
如果这句话报错 那你检查下dtpcsrq.Text这个值看是不是能够转换成DateTime --------------------编程问答-------------------- dtpcsrq.Text --------------------编程问答-------------------- 问题应该出在了对dtpcsrq.Text 的类型转换上,跟踪调试下看下dtpcsrq.Text的值是什么  --------------------编程问答-------------------- 肯定是DateTime dt = Convert.ToDateTime(dtpcsrq.Text)这句报错
你看看dtpcsrq.Text 的第10个索引值那歌字符是什么 --------------------编程问答-------------------- 怎样测试转换 --------------------编程问答-------------------- dtpcsrq.Text  应该加入输入验证,保证输入为正确的日期或者可以转换为日期的格式 --------------------编程问答-------------------- 如果你想直接写sql语句可以这样写:
对于oracle可以直接使用函数
string.Format( "insert into table1 values('参数',参数,TO_DATE('{0}','yyyy-mm-dd hh24:mi:ss'))", Convert.ToDateTime(dtpcsrq.Text));

如果sqlserver则可以直接将时间作为字符串加入:
比如:string.Format( "insert into table1 values('参数',参数,'{0}", Convert.ToDateTime(dtpcsrq.Text));

string.Format( "insert into table1 values('参数',参数,'#{0}#", Convert.ToDateTime(dtpcsrq.Text)); --------------------编程问答-------------------- 还是报一样的错 --------------------编程问答-------------------- 刚才没仔细看那个异常,你这个异常分明是
DateTime dt = Convert.ToDateTime(dtpcsrq.Text);//日期
的时候,dtpcsrq.Text的格式不正确,没法转为DateTime!
你将dtpcsrq.Text的值换成这种 DateTime dt = Convert.ToDateTime("2012-12-20 11:24:00"); --------------------编程问答-------------------- dtpcsrq.Text 文本框输入的内容不满足日期的格式,比如有空格,有中文输入法下输入的数字灯 --------------------编程问答-------------------- 在这句代码上,加上断点,然后执行到这句,看一眼text中的值,是不是存在问题 --------------------编程问答-------------------- 先取到dtpcsrq.Text 文本框的值判断是否为日期格式,如果true 才转换成日期类型,最后取它的值 --------------------编程问答-------------------- 用DateTime.Parse(dtpcsrq.Text)试试 --------------------编程问答-------------------- IDData.Born = string.Format("{0}-{1}-{2}", IDData.Born.Substring(0, 4), IDData.Born.Substring(4, 2), IDData.Born.Substring(6, 2));
我这个IDData.Born是8位的字符串,19881003转换成1988-10-03
然后才能用BornTime = Convert.ToDateTime(IDData.Born); --------------------编程问答-------------------- 断点,看下你的text的值。把值贴上来。 --------------------编程问答-------------------- 建议调试一下、、、、、 --------------------编程问答-------------------- dtpcsrq.Text 值为空了,或者是它并不是日期格式!~ --------------------编程问答-------------------- 以前也遇到过这样的问题,来看看。后来我直接都是字符串。好了许多啊 --------------------编程问答-------------------- 不知道楼主的问题解决了吗,你在DateTime dt = Convert.ToDateTime(dtpcsrq.Text);这句上加个断点再运行看看dtpcsrq.Text的值到底是什么 --------------------编程问答-------------------- 直接这样 dt.toString("yyyy-MM-dd"); --------------------编程问答-------------------- dt.toString("yyyy-MM-dd HH:mm:ss");这样的格式插入 --------------------编程问答-------------------- "insert into table(dateT) values('"+dt.toString("yyyy-MM-dd HH:mm:ss")+"')" --------------------编程问答-------------------- 在执行SQL的时候,在sql语句里面执行一次字符串和时间的转换才行,C#的时间格式和sql中时间格式不一样的 --------------------编程问答-------------------- convert转换格式应该跟区域设置有关 --------------------编程问答-------------------- datetime dtime=datetime.now
dateTime.typeparse(dtpcsrq.text,out dtime) 

然后看这个dtime 的值就行了
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,