2016-08-03 7 views
0

私はVBコードをC#/ .Netに変換しています。私は、次のために同等のものが必要です。FieldAttributeEnum、DataTypeEnum:VB/ADODB to C#

のRecordSet
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

指摘されているように、それが直接の翻訳ではありません。 @Davidノートでは、DataSetは1つ以上のテーブルを持つことができますが、1つだけ必要です。コメントに@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

この投稿は質問に答えていないことを覚えておく必要があります。 「同等のものはありません。完全に書き直さなければならないでしょう」というようなものは、より正確ですが、いつか質問をしてくれる人はあまり役に立ちません。 –