Тело вашего триггера UPDATE для OrdersTable должно выглядеть примерно так:
IF NEW.Status = 1
AND OLD.Status <> 1 --Edit: Updates on other fields should not adjust quantities
BEGIN
UPDATE TrackInventoriesTable AS ti
INNER JOIN PurchasedProductsTable AS pp ON ti.ItemSku = pp.ItemSku
SET ti.OrderedQty = ti.OrderedQty - pp.Qty
WHERE ti.CustomerId = NEW.CustomerId AND pp.OrderId = NEW.ID
;
END
Однако, если в одном заказе может быть несколько записей для одного и того же sku, это, вероятно, не будет работать; если я правильно помню, запросы MySQL UPDATE обновят строку только один раз, даже если объединение будет указывать на необходимость нескольких обновлений.
Форма не должна отправлять на querystring, если Вы не забыли указывать форму как метод = "POST". Как Вы указываете форму? Вы используете ASP.NET Бета MVC?
То, в чем Вы нуждаетесь, является чем-то вроде этого в Вашем представлении:
<% foreach(var provider in (IEnumerable<Provider>)ViewData["Providers"]) { %>
<%=Html.RadioButton("ProviderType", provider.ID.ToString(), provider.IsSelected)%><label><%=provider.Name%></label>
<% } %>
И затем в Вашем контроллере имеют это:
var providers = GetProviders();
int selectedId = (int) Request["ProviderType"]; // TODO: Use Int32.TryParse() instead
foreach(var p in providers)
{
if (p.ID == selectedId)
{
p.IsSelected = true;
break;
}
}
ViewData["Providers"] = providers;
return View();
Класс Поставщика будет чем-то вроде этого:
public class Provider
{
public int ID { get; set; }
public string Name { get; set; }
public bool IsSelected { get; set; }
}
Хорошо логически это не сохранилось бы, нет никакого состояния сеанса. Думайте о нем как о совершенно новой странице. Для получения переключатели для заполнения Вас должны сохраниться назад, что-то как ViewData["ProviderType"] = 3, чтобы иметь переключатель повторно заполняет с его данными.
Если вы дадите переключателям то же имя, что и свойство в вашей модели, тогда MVC автоматически установит отмеченный атрибут для соответствующей кнопки.
Сейчас я использую vs2010, он работает так:
<%=Html.RadioButton("ProviderType","1",Model.ProviderType==1)%><label>Hospital</label>
выглядит лучше?