以下是引用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编辑过]