解决错误另开帖加分,分300

Y_2716 2010-04-15 09:56:07
我现在做一个网站..

昨天放到服务器测试某个栏目的时候.

发现一个奇怪的问题..

那个栏目有一个开始时间跟结束时间.

当不输入的时候.

机会抛出
 System.FormatException: String was not recognized as a valid DateTime. at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles) at System.DateTime.Parse(String s, IFormatProvider provider, DateTimeStyles styles) at System.DateTime.Parse(String s, IFormatProvider provider) at System.DateTime.Parse(String s) at System.Convert.ToDateTime(String value) at KYCMS.BLL.zguidecontent.detailtemp(String strname, String lan, String uloginname, String title, String linkurl, String catpicfile, String catpicfileb, String vicetitle, String intro, String titledate, String areagroup, String activefenbu, String quanyi, String activebeginTime, String activeendtime) at KYCMS.BLL.zguidecontent.getdetail(String lan, String uloginname, Int32 id, Int32 catid, Int32 PageNo, Int32 flagid) at KYCMS.BLL.ZMakebasect.MK_guidedetail(String lan, String uloginname, Int32 id, Int32 catid) at KYCMS.WEB.kyzmanage.zongmanage.manage_content_guideadd.add_Click(Object sender, EventArgs e)

这样一个错误..

但是我在本机测试都是可以的..

哪位大虾解决了..

另开贴加分..

分300.
...全文
250 39 打赏 收藏 转发到动态 举报
写回复
用AI写文章
39 条回复
切换为时间正序
请发表友善的回复…
发表回复
zsuswy 2010-04-16
  • 打赏
  • 举报
回复
和操作系统的版本以及语言设置有关系, 不同的Culture的日期格式不一样,DateTime.Parse只能Parse某些格式的日期。 所以才会出现“字符串不被验证成一个有效的日期类型”。

而且我看到你的Parse方法里面还指定一些其它的参数,把方法贴出来看下。
A_T_G 2010-04-16
  • 打赏
  • 举报
回复
你说在本机好使 在服务器上不好使 楼上有一哥们说是数据库的事 我同意

我大胆的猜想一下 你可能在本机数据库里的“开始时间跟结束时间”字段里用了默认的值“(getdate())”而在服务器上没有用。所以说“当不输入的时候”就会出错.

A_T_G 2010-04-16
  • 打赏
  • 举报
回复
汗==!发错地方了
A_T_G 2010-04-16
  • 打赏
  • 举报
回复
这是JS的一个打印 方法可以打出你想打的地方,不知这是不是你想要的结果?

  function printpreview()
  {
   bdhtml=window.document.body.innerHTML;
sprnstr="<!--startprint-->";
eprnstr="<!--endprint-->";
prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17);
prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));
window.document.body.innerHTML=prnhtml;
window.print();
window.parent.returnValue='0';
}
YnSky 2010-04-16
  • 打赏
  • 举报
回复
帮顶把!!!!!!!!!!!!
皇城龙三 2010-04-16
  • 打赏
  • 举报
回复
应该是日期格式不匹配的问题, 加一个对空日期的处理语句,跟踪一下就知道了
dengxiao1981 2010-04-16
  • 打赏
  • 举报
回复
数据类型转换问题
honkerhero 2010-04-16
  • 打赏
  • 举报
回复
开始-》控制面板-》日期和区域选项-》把那个短日期格式和长日期格式写成和你调试的机器一样的就行了。
「已注销」 2010-04-16
  • 打赏
  • 举报
回复
数据类型转换问题
slimboy123 2010-04-16
  • 打赏
  • 举报
回复
if(!string.IsNullOrEmpty(txtStartTime.Text.Trim()) && !string.IsNullOrEmpty(txtEndTime.Text.Trim()))
{
//操作
}
slimboy123 2010-04-16
  • 打赏
  • 举报
回复
是不是你服务器上的数据库的开始和结束日期字段设置为不允许为空了,你最好还是在程序里做个判断:

if(!string.IsNullOrEmpty(txtStartTime.Text.Trim()) && !string.IsNullOrEmpty(txtStartTime.Text.Trim()))
{
//操作
}
liuyileneal 2010-04-16
  • 打赏
  • 举报
回复
DateTime.TryParse("",out dt)
DateTime.ParseExact
myhope88 2010-04-16
  • 打赏
  • 举报
回复
过滤一下就可以解决啦
wangminqi 2010-04-16
  • 打赏
  • 举报
回复
把默认值设为null,在Inserting事件写如下代码
protected void SqlDataSource2_Inserting(object sender, SqlDataSourceCommandEventArgs e)
{
if (e.Command.Parameters["@begin_time"].Value==null)
e.Command.Parameters["@begin_time"].Value = DateTime.Now;


http://www.mystruggle.com.cn

http://www.mybuffet.cn
guyehanxinlei 2010-04-15
  • 打赏
  • 举报
回复
对输入格式化一下
丰云 2010-04-15
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sandy945 的回复:]
使用 TryParse
[/Quote]
这种方法最好
liq1979 2010-04-15
  • 打赏
  • 举报
回复
public static bool TryParse(
string s,
out DateTime result
)

DateTime dt;
if(DateTime.TryParse("2010-4-15",out dt))
{
Console.Write(dt.ToString());
}
fuda_1985 2010-04-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ch_weni 的回复:]
System.FormatException: String was not recognized as a valid DateTime.

这句很明显:字符串不被验证成一个有效的日期类型
[/Quote]
没我什么事了,都说出来了。
「已注销」 2010-04-15
  • 打赏
  • 举报
回复
转换错误 很明显啊 事件为空的时候向表中的datatime字段插入了空值
Justin-Liu 2010-04-15
  • 打赏
  • 举报
回复
数据类型转换问题
加载更多回复(19)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧