2016-08-11 83 views
0

.NET代碼的DataRow在C#在VB.NET

Public Function dbStringValue(ByVal drw As DataRow, _ 
            ByVal sColumnName As String) As String 
     If IsDBNull(drw.Item(sColumnName)) Then 
      dbStringValue = "" 
     Else 
      dbStringValue = CType(drw.Item(sColumnName), String) 
     End If 
End Function 

現在這是一個清理代碼詢問了空值的數據行的一部分。數據行與列名一起傳遞。我試圖精讀它來用vert C#如下

public static string dbStringValue(DataRow drw, string sColumnName) 
{ 
    string functionReturnValue = ""; 
    if (drw(sColumnName) != System.DBNull.Value) 
    { 
     functionReturnValue = (string)drw(sColumnName); 
    } 
    return functionReturnValue; 
} 

但是沒有爲數據行沒有項目性質和谷歌搜索建議有它的數據行(「的ColumnName」)。使用這種方法,我不斷得到drw是一個變量,但像方法錯誤一樣使用。

任何人可以幫助

+0

VB.Net的一個奇怪的事情,使用'()'爲數組索引。很奇怪。 – Habib

+0

這與VB語法內聯,用於VB開發人員的自然轉換 –

回答

2
datarow["ColumnName"] 

是正確的用法,因爲你必須訪問索引,不同的是C# syntax

+0

VB.net使用括號,而C#使用方括號。 – jdweng

+0

是的,因爲這更符合VB的語法,MS想要VB開發人員的自然轉換 –

0

只要我張貼了這個問題,我注意到了

["ColumnName"] 

而不是

("ColumnName") 

我改變了這一點,現在它似乎很好。

+0

這應該是一個評論而不是回答,因爲你意識到自己的錯誤 –