2013-03-14 92 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