我有以下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#代码以便它可以工作。
答案 0 :(得分:5)
[]
。您也无需访问.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