2016-08-03 3 views
0

일부 VB 코드를 C#/Net로 변환 중입니다. 나는 다음에 대한 등가물이 필요합니다FieldAttributeEnum, DataTypeEnum : VB/ADODB to C#

레코드 집합
FieldAttributeEnum
DataTypeEnum

내가 RecordSetDataSet로 대체 될 수 있습니다 생각을하지만 난 다른 두 가지에 대해 알고하지 않습니다. 어떤 아이디어?

일부 예제 코드 :

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 
+1

이 방법이 도움이됩니까? http://www.vbtonet.com/legacy-data-access-to-net/adodb-sql/ –

+1

이들은 ADO 유형으로 데이터베이스를 사용하는 초기 COM 기반 기술입니다. .NET으로 직접 변환 할 수는 없으므로 코드를 다시 작성해야합니다. 그렇지 않으면 당신이 사용하는 언어와 완전히 무관합니다. 또는 ADO를 계속 사용하고, C#에서도 잘 작동하지만 참조 추가> 어셈블리> 확장 목록에서 ADODB를 추가하십시오. –

+0

@AndrewMortimer : 해당 링크는 DataEnumType에 DbType을 사용하는 것을 보여 주며, 등가물이있는 것으로 보입니다. DataTypeEnum.adBoolean -> DbType.Boolean. FieldAttribeEnum에 대한 언급은 없지만 적어도 부분적으로는 거기에 있습니다. –

답변

0

지적 된 바와 같이, 그것은 직접 번역하지 않습니다. @ 데이비드 노트, DataSet 하나 이상의 테이블을 가질 수 있지만 하나만 필요합니다. 주석에 @AndrewMortimer가 제공 한 링크도 참고하십시오. 도움이됩니다. 코드는 다음과 같이 표시됩니다.

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; 
+0

이 게시물은 질문에 대답하지 않는다는 것을 명심해야합니다. "동급이 없으면 완전히 다시 작성해야합니다."와 같은 것이 더 정확할 것이지만 언젠가는 그 문제를 끈질 기게 답변하는 사람은별로 도움이되지 않을 것입니다. –