【发布时间】:2016-12-13 21:38:19
【问题描述】:
我正在使用 HTTP POST 请求与 asp.net Web API 绑定的 HTML 表中创建过滤器,并使用此 jquery querybuilder 创建过滤器。
{
"condition": "AND",
"rules": [
{
"id": "price",
"field": "price",
"type": "double",
"input": "text",
"operator": "less",
"value": "10.25"
},
{
"condition": "OR",
"rules": [
{
"id": "category",
"field": "category",
"type": "integer",
"input": "select",
"operator": "equal",
"value": "2"
},
{
"id": "category",
"field": "category",
"type": "integer",
"input": "select",
"operator": "equal",
"value": "1"
}]
}]
}
有什么方法可以使用 C# 或任何其他可以接收 HTTP post 对象并在 SQL 中过滤数据的 nuget 包在条件下转换此 JSON 对象?
C#
public Products GetProductById(object filterObj)
{
SqlDataReader reader = null;
SqlConnection myConnection = new SqlConnection();
myConnection.ConnectionString = @"Server=.\SQLSERVER2008R2;Database=DBCompany;User ID=sa;Password=xyz@1234;";
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.CommandType = CommandType.Text;
sqlCmd.CommandText = "SELECT * FROM MYTABLE WHERE PRICE < 10.25 AND (CATEGORY = 2 OR CATEGORY = 1);
sqlCmd.Connection = myConnection;
myConnection.Open();
reader = sqlCmd.ExecuteReader();
Products prod = null;
while (reader.Read())
{
prod = new Products ();
prod.Id = Convert.ToInt32(reader.GetValue(0));
prod.Name = reader.GetValue(1).ToString();
prod.CategoryId = Convert.ToInt32(reader.GetValue(2));
}
return prod ;
}
【问题讨论】:
-
所有数据都在那里,所以是的,您可以将其转换为 SQL 查询。如果你想用 c# 来做,你可以创建自己的方法来为你解码。
-
你在使用mvc web api吗?
-
是的,我在后端使用带有 SQL 服务器的 mvc web api