FieldAttributeEnum、DataTypeEnum:VB/ADODB 到 C#

FieldAttributeEnum, DataTypeEnum: VB/ADODB to C#

我正在将一些 VB 代码转换为 C#/.Net。我需要以下等价物:

RecordSet
FieldAttributeEnum
DataTypeEnum

我觉得RecordSet可能会被DataSet代替,但我不知道另外两个。有什么想法吗?

一些示例代码:

Private Function CreateRecordsetFromDataGrid(ByVal DGV As DataGridView) As Recordset
    Dim rs As New Recordset
    'Create columns in ADODB.Recordset
    Dim FieldAttr As FieldAttributeEnum
    FieldAttr = FieldAttributeEnum.adFldIsNullable Or
                FieldAttributeEnum.adFldUpdatable
    For Each iColumn As DataGridViewColumn In DGV.Columns
        'only add Visible columns
        If iColumn.Visible = True Then
            Dim FieldType As DataTypeEnum
            'select dataType
            If iColumn.ValueType Is GetType(Boolean) Then
                FieldType = DataTypeEnum.adBoolean

如前所述,这不是直译。正如@David 指出的那样,DataSet 可以有多个 table,但我只需要一个。另请注意@AndrewMortimer 在评论中给出的 link,这很有帮助。代码现在看起来像这样:

private DataTable GetDataTableFromDataGridView(DataGridView dataGridView)
{
    const string TABLE_NAME = "SheetOne";

    DataSet dataSet = new DataSet();
    dataSet.Tables.Add(new DataTable(TABLE_NAME));

    foreach (DataGridViewColumn iColumn in dataGridView.Columns)
    {
        // add only visible columns
        if (iColumn.Visible == true)
        {
            DataColumn dataColumn = new DataColumn();
            dataColumn.AllowDBNull = true;