【发布时间】:2013-01-03 12:09:46
【问题描述】:
我使用<ScriptMethod(ResponseFormat:=ResponseFormat.Json)> 自动将我的Return 格式化为json 格式输出。
但是,我认为我做的比必要的多,因为我首先将DataSet 的内容转储到Dictionary,然后我将Return Dictionary 转储。
如果我在列上使用别名并想输出所有列,有没有办法像 Dictionary 一样简单地使用 Return 和 DataSet?如果没有,我怎样才能用尽可能少的行来做到这一点?
Dim conn As New SqlConnection
conn.ConnectionString = Module1.DBConn2
Dim sqlCommand = New SqlCommand("Select id, column1, column2... From table1", conn)
conn.Open()
Dim sqlDataset As DataSet = New DataSet()
Dim sqlDataAdapter As SqlDataAdapter = New SqlDataAdapter(sqlCommand)
sqlDataAdapter.Fill(sqlDataset)
conn.Close()
Dim jsonDict(sqlDataset.Tables(0).Rows.Count - 1) As Dictionary(Of Object, Object)
Dim i As Integer = 0
For Each rs As DataRow In sqlDataset.Tables(0).Rows
jsonDict(i) = New Dictionary(Of Object, Object)
jsonDict(i).Add("id", rs.Field(Of Object)("id"))
jsonDict(i).Add("column1", rs.Field(Of Object)("column1"))
jsonDict(i).Add("column2", rs.Field(Of Object)("column2"))
...
i = i + 1
Next
Return jsonDict
【问题讨论】:
-
您可以返回数据行数组。 sqlDataset.Tables(0).Rows 或者只返回 sqlDataset.Tables(0);
标签: c# vb.net dataset associative-array webmethod