-1

我正在为 Asp.net 中的餐厅管理系统创建销售点表单,我有两个部分,第一部分是具有饮料、比萨等按钮的类别,第二部分是类别的子菜单,例如单击饮料它应该从 sql server 表中打开子菜单 Pepsi、Coke、Mirinda 等。

我已经创建了类别的运行时按钮,现在我想使用 json 执行存储过程以在单击类别按钮时显示项目中的子菜单。请解释与 sql server 的连接过程并使用 json 执行存储过程。提前致谢。问候 saqib

4

1 回答 1

2

JSON不会执行命令。它只是一种以文本形式存储数据的方式,开发人员易于阅读。WebMethod如果要用于JSON存储DropDowns 的值或将数据返回到s,则需要创建一个DropDown。下面的代码展示了如何创建一个 Web 服务并使用JSON它来从数据库中返回结果。您将使用DataContractJsonSerializer该类来阅读JSON. 这个例子来自Using JSON with ASP.NET 3.5

using System;
using System.IO;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Activation;
using System.Data.SqlClient;
using System.Runtime.Serialization.Json;
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class ProductService
{   
 [OperationContract]    
 public string GetProductDetailsByProductID(int productID)
 {
   Product prod = new Product();        
   string connectionString = 
     "server=localhost;uid=sa;pwd=thiru;database=AdventureWorks;";
   using (SqlConnection connection = new SqlConnection(connectionString))
   {
     string sql = "Select Name, ProductNumber from Production.Product " +
       " Where ProductID = " + productID.ToString();
     connection.Open();
     SqlCommand command = new SqlCommand(sql, connection); 
     SqlDataReader reader = command.ExecuteReader();
     while (reader.Read())
     {
       prod.Name = reader["Name"].ToString();
       prod.ProductNumber = reader["ProductNumber"].ToString();
       prod.ProductID = productID;
     }
    }
    MemoryStream stream = new MemoryStream();
    DataContractJsonSerializer serializer = new 
      DataContractJsonSerializer(typeof(Product));
    serializer.WriteObject(stream, prod);
    stream.Position = 0;
    StreamReader streamReader = new StreamReader(stream);
    return streamReader.ReadToEnd();        
  } 
}
[DataContract]
public class Product
{
    [DataMember]
    public int ProductID;
    [DataMember]
    public string Name;
    [DataMember]
    public string ProductNumber;
}
于 2013-04-24T07:27:19.270 回答