【发布时间】:2011-10-01 11:37:14
【问题描述】:
我知道这意味着什么,我搜索过 Google 和 MSDN。但是,我还能如何解决这个问题?
我在 App_Code 文件夹内的 razor 代码中有一个函数(使用 WebMatrix),我从数据库中获取信息,进行一些计算,然后用新的总数更新数据库。
但是,如果 App_Code 文件夹中不允许我将变量传递给我的方法,我该如何?
这是我得到的:
EditQuantity.cshtml(根文件夹):
try
{
Base baseClass;
baseClass.CalculateTotalPriceInCart(Request.QueryString["PartNumber"], Request.QueryString["Description"], Session["OSFOID"], true);
Response.Redirect("~/Cart.cshtml");
}
catch(Exception exmes)
{
message = exmes;
}
还有,Base.cs(在 App_Code 文件夹内):
using System;
using System.Collections.Generic;
using System.Web;
using System.Text;
using WebMatrix.Data;
/// <summary>
/// Summary description for ClassName
/// </summary>
public class Base
{
public void CalculateTotalPriceInCart(var PartNumber, var Description, var OrderId, bool IsBoxed)
{
var database = Database.Open("OSF");
var query = "";
var result = "";
decimal price = 0.00M;
if(IsBoxed)
{
// Select item.
query = "SELECT Boxes, BoxPrice FROM Cart WHERE OrderId = '" + OrderId + "' AND PartNumber = '" + PartNumber + "' AND Description = '" + Description + "' AND IsBoxed = 1";
result = database.Query(query);
// Recalculate Price.
foreach(var item in result)
{
price = result.Boxes * result.BoxPrice;
}
// Update item.
query = "UPDATE Cart SET BoxPrice = '" + price + "' WHERE OrderId = '" + OrderId + "' AND PartNumber = '" + PartNumber + "' AND Description = '" + Description + "' AND IsBoxed = 1";
database.Execute(query);
}
}
}
我已经尝试了一些方法来查看它是否有效,但是不行。我显然做错了,但这就是我在桌面应用程序中的做法,我不明白为什么这里的网页会有所不同,我该怎么做?
谢谢!
【问题讨论】:
-
附带说明:准备好的/参数化的语句是你的朋友。除非您有充分的理由,否则不要通过字符串连接构建查询。