使用转换后的VB转换为C#代码

时间:2013-01-16 18:13:29

标签: c# vb.net datatable

我有以下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#代码以便它可以工作。

2 个答案:

答案 0 :(得分:5)

C#中的{p> Indexers使用方括号 - []。您也无需访问.Item

_WMS_CollaborationInfo.CollaborationID = 
           dt.Rows[0]["CollaborationID"].ToString();

答案 1 :(得分:5)

在C#中,方法和索引器之间存在区别。第一个使用括号,第二个使用括号。从VB中移动时,我花了一些时间来掌握这两种方法。

尝试:

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

编辑:VB.NET和C#比较

我曾经一直参考这个备忘单,查看阵列部分: http://www.harding.edu/fmccown/vbnet_csharp_comparison.html