【发布时间】:2017-05-18 00:23:48
【问题描述】:
我正在尝试将一些旧 CSV 文件导入我的数据库,这些文件以位/布尔值作为 1 和 0 而不是 True/False 导出。
我需要与需要DataRow 的系统交互,因此我使用DataTable.Row.Add(params object[] values) 重载,它允许您传入一组对象,然后映射到列中,以创建我的DataRows . DataTable 确实 将 Columns 设置为与目标数据库匹配的架构。
这一切都适用于每个列类型,除了这些位/布尔值,它抱怨它无法转换,但出现以下异常:
System.ArgumentException: '字符串未被识别为有效的布尔值。无法将 存储在 IsEnabled 列中。预期类型是布尔值。'
我想找到一种方法来自定义转换代码,以便它知道如何将数字(存储为字符串)转换为布尔值。有没有办法做到这一点?
更新:具体来说,如果可能的话,我想避免首先手动转换 object[] 数组中的数据。
【问题讨论】:
-
我很好奇是什么让你相信破解为布尔 DataColumn 提供的内置字符串转换以接受 0 或 1(如果它甚至可能的话)在任何方面都比或可取的工作更少处理对象数组以将主题值转换为正确的布尔值。无论哪种方式,您都需要实现逻辑。您只需要处理数组中映射为布尔值的那些项。
标签: c# .net system.data