0

I は、json 形式の出力として<ScriptMethod(ResponseFormat:=ResponseFormat.Json)>自動的にフォーマットするために使用します。Return

DataSetただし、最初に a の内容を aにダンプしDictionary、.ReturnDictionary

列にエイリアスを使用し、すべての列を出力したい場合、単純ReturnDataSet同じようにする方法はありDictionaryますか? そうでない場合、できるだけ少ない行でこれを行うにはどうすればよいですか?

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
4

2 に答える 2

0
1. pass the array of DataSets to a web service web method that
takes a DataSet as a parameter.

例えば:

[webmethod]
public static void(Dataset[] a)
{
// do something
}

xml を使用して操作を実行して、データセットを埋めることもできます。

2. Use the DataSet.GetXML method (which returns an XML string representing
the DataSet) and pass that string to a web service web method. Then that
web method would declare a new DataSet and using the ReadXML method, it
could read the XML string into itself. You will need to load the XML string
into an XMLDocument and then pass it to an XMLNodeReader so that it can be
read into the DataSet using ReadXML.

3. fill up each dataset from the array. and pick a dataset through loop operation and after picking the dataset get the table in that dataset. finally you can get the row using the process as below(if needed):

DataRow dr;
Dataset ds;
DataTable dt;

dt = ds.Tables(0);
foreach(dr in ds.tables(0).rows){
// dr("ColName") to get value;
}
于 2013-01-20T11:47:24.393 に答える
0

id(主キー)ですべての行を取得できます:戻り値の型をデータテーブルに変更します

return sqlDataset.Tables(0);

このリンクはリンクに役立ちます

またはこのリンク

于 2013-01-20T04:50:15.843 に答える