我想获得一个从sql语句返回的字段名列表。这可以使用sql语句或一些c#解析代码来完成,以将语句解析为字符串。如果不编写复杂的解析器,这可以轻松完成吗?
例如,我可能想要返回
name,field2,field3
这
SELECT a.field1 as name, a.field2, b.field3 FROM A INNER JOIN B ON A.Id = B.FkId
答案 0 :(得分:5)
答案 1 :(得分:3)
如果您有DataSet
或DataTable
,则可以访问其Columns
属性,该属性是DataColumn
个对象的集合。然后可以像这样访问列名:
// assume dt is DataTable
string colname = dt.Columns[0].ColumnName;
答案 2 :(得分:0)
如果您使用的是大多数人使用的SqlDataReader,您可以使用以下代码检索字段名称
Private Shared Function GetDataRecordColumns(ByVal dr As SqlClient.SqlDataReader) As List(Of String)
'' list to contain the columns
Dim ls As New List(Of String)
For x As Integer = 0 To dr.FieldCount - 1
ls.Add(dr.GetName(x))
Next
Return ls
End Function
如果您正在使用数据集或数据表,可以使用以下函数(只需传入数据集。如果使用数据集,则传递表(0))
Private Shared Function GetDataRecordcolumns(ByVal dt As DataTable) As List(Of String)
Dim ls As New List(Of String)
For Each col As DataColumn In dt.Columns
ls.Add(col.ColumnName)
Next
Return ls
End Function
希望这有帮助