1

データベースからリストを生成したい jquery mobile 、asp.net、C#、および 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を入力するにはどうすればよいですか

4

2 に答える 2

1

私はDTO(データ転送オブジェクト)の方法を使用しました。これが私のコードです

最初にクラスの製品を書きました

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; 
    }
于 2013-03-15T03:22:09.420 に答える
1

ASP.Net で使用している API は何ですか? Web フォーム、または mvc または webapi を使用していますか?

上記のコードを維持したい場合は、DTO (データ転送オブジェクト) クラスを作成し、データ セットからデータを取り込みます。その後、NuGet を使用して簡単にインストールできる Json.Net を使用してシリアル化できます。

おそらくより良いオプションは、WebAPI と Entity Framework を使用することです。WebAPI がシリアル化を行います。これは、jQuery Mobile アプリが GET、POST、PUT、および Delete データにアクセスできる API を作成する優れた方法です。

Google で WebAPI を使い始めると、印刷物とビデオの両方の形式で多くの入門チュートリアルを見つけることができると確信しています。

于 2013-03-14T22:42:53.237 に答える