我正在尝试在更新DataRow时验证类型。我使用以下代码:
public static int Write<T>(T data, DataRow row, string FieldName)
{
if (null == data)
{
row[FieldName] = row.Table.Columns[FieldName].DefaultValue;
}
else
{
if (row.Table.Columns[FieldName].DataType is T)
{
row[FieldName] = data;
return 0;
}
else
{
try
{
row[FieldName] = (row.Table.Columns[FieldName].DataType)Convert.ChangeType(data, row.Table.Columns[FieldName].DataType);
}
catch (InvalidCastException)
{
return 1;
}
}
}
return 0;
}
但它不起作用。在if row.Table.Columns[FieldName].DataType is T
上,我将GUID列与GUID进行了比较并返回false。
部分(row.Table.Columns[FieldName].DataType)Convert.ChangeType(data, row.Table.Columns[FieldName].DataType);
我有语法错误,(row.Table.Columns[FieldName].DataType)
无效。
我愿意接受其他类型的验证。