2

私は次のVBコードを持っています:

Dim dt As DataTable = DAL.WMS_Collaboration_Fetch(0).Tables(0)

If dt.Rows.Count > 0 Then
    'Bind Dataset to Gridview
    Dim _WMS_CollaborationInfo As New WMS_CollaborationInfo
    With _WMS_CollaborationInfo
        .CollaborationName = dt.Rows(0).Item["CollaborationName").ToString
        .CollaborationID = dt.Rows(0).Item("CollaborationID").ToString
    End With

次のようにC#コードに変換しました:

DataTable dt = DAL.WMS_Collaboration_Fetch(0).Tables(0);

if (dt.Rows.Count > 0) {
    //Bind Dataset to Gridview
    WMS_CollaborationInfo _WMS_CollaborationInfo = new WMS_CollaborationInfo();
    {
        _WMS_CollaborationInfo.CollaborationName  = dt.Rows[0].Item["CollaborationName"].ToString;
        _WMS_CollaborationInfo.CollaborationID = dt.Rows[0].Item["CollaborationID"].ToString;
    }

ただし、C#コードを実行できません。VBでは、DataTableを使用するテーブル列にアクセスするには、列名を渡すだけです(VBについてはよくわかりません)。例:「CollaborationID」

dt.Rows(0).Item("CollaborationID").ToString

DataTableを使用してテーブルからデータを読み取るのと同等のC#は何ですか?単に、C#コードを書き直して機能させるにはどうすればよいかということです。

4

2 に答える 2

5

C#のインデクサー[]は角かっこを使用します- 。また、アクセスする必要はありません.Item

_WMS_CollaborationInfo.CollaborationID = 
           dt.Rows[0]["CollaborationID"].ToString();
于 2013-01-16T18:14:36.150 に答える
5

C#では、メソッドとインデクサーが区別されます。最初は括弧を使用し、2番目は中括弧を使用します。両方にかっこを使用しているVBから移動するときに、これを把握するのに少し時間がかかりました。

試す:

dt.Rows[0].Item["CollaborationID"].ToString()

編集:VB.NETとC#の比較

私はいつもこのチートシートを参照していました。アレイのセクションを確認してください:http: //www.harding.edu/fmccown/vbnet_csharp_comparison.html

于 2013-01-16T18:15:14.600 に答える