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# 中,方法和索引器是有区别的。第一个使用括号,第二个使用方括号。在从 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 回答