![](/img/trans.png)
[英]Can't execute my SQL Server stored procedure using db.Database.SqlQuery(sql)
[英]How to execute sql server stored procedure by using json?
我在Asp.net中為餐廳管理系統創建銷售點表格,我有兩個部分,一個是“類別”,其中有諸如Drinks,Pizza等按鈕,第二個部分是“ Item”,這是類別的子菜單,例如,單擊“ Drink”它應該從sql server表中打開子菜單Pepsi,Coke,Mirinda等。
我已經創建了類別的運行時按鈕,現在我想使用json執行存儲過程以在單擊Buttons類別時在項目中顯示子菜單。請說明與sql server的連接過程以及使用json執行存儲過程。提前致謝。 關於薩奇布
JSON
不會執行命令。 它只是以開發人員易於閱讀的基於文本形式存儲數據的一種方式。 如果要使用JSON
存儲DropDown
的值或將數據返回到DropDown
則需要創建一個WebMethod
。 以下代碼顯示了如何創建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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.