Dim ii = _DsAttribute.Tables(0).Rows.Find(Convert.ToString(DtgFields.Rows(e.RowIndex).Cells("AttributeID").Value, CultureInfo.CreateSpecificCulture("en-US"))) '.ToString.ToString(CultureInfo.InvariantCulture))
Dim jj = _DsAttribute.Tables(0).Rows.Find(Convert.ToString(DtgFields.Rows(e.RowIndex).Cells("AttributeID").Value, CultureInfo.CreateSpecificCulture("en-US"))).Item("Checked")
我尝试了上述的许多变体,试图防止数据库的数据被我机器的丹麦文化(在 Windows 中的区域/语言设置中设置)“损坏”。我尝试了不变的文化,fr-FR 和 en-US。
当我的机器是丹麦机器时,ii等于 null 并且jj返回异常(“对象引用未设置为对象的实例”),但有趣的是,_DsAttribute具有与我的机器是英语(美国英语)时相同的数据。此外,当我搜索DtgFields.Rows(e.RowIndex).Cells("AttributeID").Value的值时,我可以在_DsAttribute的数据中找到它。至少在肉眼看来,ID 的数据是相同的。
如何使用 CultureInfo 来避免此类问题?