以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  狐爸 关于 日期型数据 0001-01-01  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=8322)

--  作者:卟离卟弃
--  发布时间:2010/10/5 15:49:00
--  狐爸 关于 日期型数据 0001-01-01


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

 

狐爸,关于日期默认值 0001-01-01 能不能改为 其它的...数据库认不了

 

 假如,本行的日期来源于上一行的日期,当上一行的日期为空值的时候,本引在引用的时候就是 0001-01-01,诚请狐爸能不能把默认值改掉...(我知道可以通过判断,加一些代码可以不引用 空白日期 0001-01-01,有时候总忘记)

所以老是出现 0001-01-01的日期值,出现错误  如果更改起来容易,还请改一改....

 


图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看

--  作者:狐狸爸爸
--  发布时间:2010/10/8 8:31:00
--  

你是不是还没有升级啊?

我记得新版本没有这个问题啊。


--  作者:卟离卟弃
--  发布时间:2010/10/9 8:20:00
--  

早就升级了....


--  作者:狐狸爸爸
--  发布时间:2010/10/9 8:37:00
--  
收到,有空我看看。
--  作者:ddlzq
--  发布时间:2010/11/9 10:43:00
--  
0001-01-01 00:00
狐爸,这个日期为空的日期格式解决了吗?我刚下载11月8日版本还会出现这个啊,我保存时出现“对于造型说明无效的字符值"
--  作者:狐狸爸爸
--  发布时间:2010/11/9 11:14:00
--  

自己改一下代码,如果上一行为空,就不要从上行集成值


--  作者:ddlzq
--  发布时间:2010/11/9 17:03:00
--  

我这个不是从一个表的数据行来生成值的,代码大致如下:

我目前有一个表,想通过两个表中的“合同编号”对应关系来引用一个时间,另外想通过.RaiseDataColChanged()来更新,但一更新,另外一个数据源表中的合同还没有下达“内部生产预计完成时间”情况下,这面的表引出的时间格式即可 0001-01-01,然后保存时就会出错“对于造型说明无效的字符值”,请问我如何能避免这种问题呢?在哪部份能加判断不会更新这个空的时间值呢?

If e.DataCol.Name = "合同编号"
    Dim cmd As New SQLCommand
    Dim dt As DataTable
    Dim dr As DataRow = e.DataRow
    cmd.C
    cmd.CommandText = "SELECT * From {合同管理表} Where [内部生产单号] = \'" & dr("合同编号")& "\'"

    dt = cmd.ExecuteReader
    If dt.DataRows.Count > 0 Then
        dr("合同生产预计完成时间") = dt.DataRows(0)("内部生产预计完成时间")
    Else
    End If
End If


--  作者:狐狸爸爸
--  发布时间:2010/11/9 17:39:00
--  

Dim v as Date = dt.DataRows(0)("内部生产预计完成时间")

if v >  #1/1/1911# Then
   dr("合同生产预计完成时间") = v

End if


--  作者:ddlzq
--  发布时间:2010/11/9 17:56:00
--  

图片点击可在新窗口打开查看谢谢狐爸哦...果然好用...批量抄袭代码中...我要是学这行业的就好喽 ...


--  作者:czy
--  发布时间:2010/11/9 18:26:00
--  
以下是引用ddlzq在2010-11-9 17:03:00的发言:

我这个不是从一个表的数据行来生成值的,代码大致如下:

我目前有一个表,想通过两个表中的“合同编号”对应关系来引用一个时间,另外想通过.RaiseDataColChanged()来更新,但一更新,另外一个数据源表中的合同还没有下达“内部生产预计完成时间”情况下,这面的表引出的时间格式即可 0001-01-01,然后保存时就会出错“对于造型说明无效的字符值”,请问我如何能避免这种问题呢?在哪部份能加判断不会更新这个空的时间值呢?

If e.DataCol.Name = "合同编号"
    Dim cmd As New SQLCommand
    Dim dt As DataTable
    Dim dr As DataRow = e.DataRow
    cmd.C
    cmd.CommandText = "SELECT * From {合同管理表} Where [内部生产单号] = \'" & dr("合同编号")& "\'"

    dt = cmd.ExecuteReader
    If dt.DataRows.Count > 0 Then
        dr("合同生产预计完成时间") = dt.DataRows(0)("内部生产预计完成时间")
    Else
    End If
End If

 

其实办法很多的,如果是你这样的要求,ExecuteScalar速度会快一点。

如:

 

If e.DataCol.Name = "合同编号"
    Dim cmd As New SQLCommand
    Dim dr As DataRow = e.DataRow
    cmd.C \'数据源名称
    cmd.CommandText = "SELECT Max(内部生产预计完成时间) From {合同管理表} Where [内部生产单号] = \'" & dr("合同编号") & "\'"
    If cmd.ExecuteScalar() <> Nothing Then
        dr("合同生产预计完成时间") = cmd.ExecuteScalar()
    End If
End If

[此贴子已经被作者于2010-11-9 18:27:21编辑过]