C#String to Dataset

时间:2015-06-23 14:09:04

标签: c# json

我试图找到答案,但我没有找到成功。如果有可能如何将字符串转换为C#中的数据集,那么我可以从数据库表中的数据生成JSON文件。

这是我的asmx文件:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Script.Services;
using System.Web.Script.Serialization;
using System.Data;
using System.Data.SqlClient;

namespace Book
{
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    [ScriptService]
    public class Service : System.Web.Services.WebService
    {
        SqlConnection con;
        SqlDataAdapter adap;
        DataSet ds;

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public DataSet GetBookList()
        {
            con = new SqlConnection(@"Data Source=server;Initial Catalog=database;Persist Security Info=True;User ID=username;pwd=password;");
            adap = new SqlDataAdapter("SELECT * FROM tblBookList", con);
            ds = new DataSet();
            adap.Fill(ds, "tblBookList");

            var jsonString = new JavaScriptSerializer().Serialize(ds);
            return jsonString;
        }
    }
}

或者有更聪明的方法将数据导出到JSON文件中吗?

修改
我收到的错误是

Error: cannot implicitly convert type 'string' to 'System.Data.DataSet'

错误出现在'return jsonString;'上言。

2 个答案:

答案 0 :(得分:2)

您的函数被定义为返回一个DataSet。

您正在返回一个字符串。

更改函数定义以返回字符串。

public String GetBookList()

答案 1 :(得分:1)

如果要返回DataSet,只需返回" ds"变量。否则,您只是返回一个字符串,该字符串是ds变量的序列化版本。