2013-03-14 93 views
1

我想填充我使用jQuery Mobile的,asp.net,C#和SQL Server数据库如何填充使用JSON和Ajax

我写了一个从数据库列表在asp.net sql server数据库列表服务从数据库作为dtataset获取数据,但我不能转换数据集的东西JSON可以理解

,所以这是我的服务

[System.Web.Services.WebMethod] 
    public static DataSet GetProducts() 
    { 
     string query = "SELECT [product] ,[img1] ,[descr] FROM [ELQ].[dbo].[products]"; 
     SqlCommand cmd = new SqlCommand(query); 

     return GetData(cmd); 

    } 
    private static DataSet GetData(SqlCommand cmd) 
    { 
     string connString = "Data Source=GHOST-PC\\STC;Initial Catalog=ELQ_z;Integrated Security=True"; 
     using (SqlConnection con = new SqlConnection(connString)) 
     { 
      using (SqlDataAdapter sda = new SqlDataAdapter()) 
      { 
       cmd.Connection = con; 
       sda.SelectCommand = cmd; 
       using (DataSet ds = new DataSet()) 
       { 
        sda.Fill(ds); 
        return ds; 
       } 
      } 
     } 
    } 

,这是我的名单

<ul data-role="listview" data-inset="true" data-filter="true"> 
       <li><a href="ray.html"> 
        <img src="pic/ip5.jpg"> 
        Iphone </a></li> 
       <li><a href="scott.html"> 
        <img src="pic/s2.jpg"> 
        S2</a></li> 
       <li><a href="todd.html"> 
        <img src="pic/s3.jpg"> 
        S3</a></li> 
       <li><a href="dave.html"> 
        <img src="pic/nt2.jpg"> 
        note2</a></li> 
      </ul> 

我怎样才能将它转换为JSON和使用Ajax

你在ASP.Net使用什么API
+0

看看这个http://www.west-wind.com/weblog/posts/2008/Sep/03/DataTable-JSON-Serialization-in-JSONNET-and-JavaScriptSerializer – MarcusVinicius 2013-03-14 17:35:36

回答

1

我使用的DTO(数据传输对象)方式,这里是我的代码

第一i-写了一类产品

public class product 
{ 
    //[product] ,[img1] ,[descr] 
    public string name; 
    public string img1; 
    public string descr; 

} 

,然后我改变了getData()方法是这样

[WebMethod] 
    public List<product> getdata() 
    { 
     List<product> productt = new List<product> {}; 
     string query = "SELECT [product] ,[img1] ,[descr] FROM [ELQ].[dbo].[products]"; 
     SqlCommand cmd = new SqlCommand(query); 
     DataSet ds = GetData(cmd); 
     DataTable dt = ds.Tables[0]; 
     foreach(DataRow item in ds.Tables[0].Rows) 
     { 
      product pro = new product(); 
      pro.name = item["product"].ToString(); 
      pro.img1 = item["img1"].ToString(); 
      pro.descr = item["descr"].ToString(); 
      productt.Add(pro); 
     } 

     return productt; 
    } 
1

填充列表?你使用的是网页表单,还是mvc或webapi?

如果您想保留上面的代码,您需要创建一个DTO(数据传输对象)类并从您的数据集中填充它。然后,您可以使用Json.Net序列化它,您可以使用NuGet轻松进行安装。

可能更好的选择是使用WebAPI和实体框架。 WebAPI将为您完成序列化。这是一种创建API的好方法,您可以通过jQuery Mobile应用程序访问GET,POST,PUT和Delete数据。

我敢肯定,如果你是谷歌开始使用WebAPI,你会发现在印刷和视频形式很多入门教程。

+0

我就会给它一个尝试.. thanx – 2013-03-14 22:55:59

+0

Thanx pilotBob它帮助我分配 – 2013-03-15 03:23:50

+0

谢谢,很高兴帮助。你可以把这个标记为答案吗? – PilotBob 2013-03-15 15:19:21