Ну, лучшее, что я мог придумать, было это,
Я знаю, что это копирование строки данных за строкой, я думаю, что это можно сделать более элегантно с помощью LINQ,
у кого-нибудь еще есть ответ?
Dim dtOut As DataTable = dt.Clone()
For Each c As DataColumn In dtOut.Columns
If c.DataType.FullName = GetType(DateTime).FullName Then
c.DataType = GetType(SqlTypes.SqlDateTime)
End If
Next
dtOut.BeginLoadData()
Dim drtmp As DataRow
For Each dr As DataRow In dt.Rows
drtmp = dtOut.NewRow()
For Each dc As DataColumn In dt.Columns
If dc.DataType.FullName = GetType(DateTime).FullName Then
If dr(dc) = Date.MinValue Then
drtmp(dc.ColumnName) = SqlTypes.SqlDateTime.Null
Else
drtmp(dc.ColumnName) = dr(dc)
End If
Else
drtmp(dc.ColumnName) = dr(dc)
End If
Next
dtOut.Rows.Add(drtmp)
Next
dtOut.EndLoadData()