Это относится и к modellnr
, и EW444
к именам столбцов:
UPDATE produkt_info SET antal = 4 WHERE modellnr = EW444
Это можно увидеть из ошибки, которая говорит:
[1111 ] колонка "ew444" не существует .
blockquote>Если вы хотите сравнить
modellnr
со строковым значением'EW444'
, вам нужно поместить его в кавычки:UPDATE produkt_info SET antal = 4 WHERE modellnr = 'EW444'
Вы могли записать тонну кода, чтобы сделать это. Или Вы могли просто использовать xVal, который свободен и делает точно это, плюс намного больше. Поместите аннотации значения на свои типы.NET, добавьте несколько простых вещей к своему aspx, и Вы получаете проверку jQuery бесплатно. Плюс он идет с поставщиками для популярных платформ, и это очень настраиваемо в случае, если Вам нужна более сложная проверка.
Я не вижу потребности изобрести велосипед здесь.
При помещении сообщения статически в страницу и набор, это - дисплей ни к "одному", Вы могли показать, что обмениваются сообщениями одновременно, Вы изменяете класс для поля ввода.
<p>
<label for="email">
Email:</label>
<%= Html.TextBox("email") %><span style="display:none" class="email-error">Email required</span>
<%= Html.ValidationMessage("email") %>
</p>
Затем в Вашем JS добавляют, что эта строка под частью изменяет это:
if ($("input[name='email']").val().length < 1) {
$("input[name='email']").addClass("input-validation-error");
valid = false;
}
к этому:
if ($("input[name='email']").val().length < 1) {
$("input[name='email']").addClass("input-validation-error");
$("span.email-error").show();
valid = false;
}
Вам, возможно, понадобится некоторый CSS для расположения того материала соответственно, но функционально он должен сделать то, что Вы хотите.
Править:
Избегать дополнительной замены разметки:
$("span.email-error").show();
с:
$("input[name='email']").after('<span style="display:none" class="email-error">Email required</span>');
Это была бы идея просто использовать плагин проверки формы jQuery для стороны клиента? Легко реализовать в коде представления. Вы добавляете несколько тегов к полям ввода и добавляете несколько строк JavaScript в заголовке, и Вы сделаны. Конечно, необходимо было бы все еще кодировать что-либо, что это является 'очень пользовательским' так сказать.
Создайте HtmlHelper, который является ValidatedTextBox. Я сделал это отражение использования о своих моделях, создав полностью динамическую интеграцию jQuery с проверкой, но более простая версия работала бы как это (это будет, вероятно, работать, но не тестируется как есть). Хорошее место для запуска:
public static MvcForm BeginClientValidatedForm(this HtmlHelper helper, string formId)
{
HttpResponseBase response = helper.ViewContext.HttpContext.Response;
if (helper.ViewData.ModelState.IsValid)
{
response.Write("<ul class=\"validation-summary-errors\"></ul>\n\n");
}
response.Write(ClientValidationHelper.GetFormValidationScript(formId));
response.Write("\n");
// Inject the standard form into the httpResponse.
var builder = new TagBuilder("form");
builder.Attributes["id"] = formId;
builder.Attributes["name"] = formId;
builder.Attributes["action"] = helper.ViewContext.HttpContext.Request.Url.ToString();
builder.Attributes["method"] = HtmlHelper.GetFormMethodString(FormMethod.Post);
response.Write(builder.ToString(TagRenderMode.StartTag));
return new MvcForm(response);
}
И соответствующий "GetFormValidationScript":
public static string GetFormValidationScript(string formId)
{
string scriptBlock =
@"<script type=""text/javascript"">
$(document).ready(function() {{
$(""#{0}"").validate({{
meta:""rules"",
onkeyup:false,
onfocusout:false,
onclick:false,
errorClass:""input-validation-error"",
errorElement:""li"",
errorLabelContainer:""ul.validation-summary-errors"",
showErrors: function(errorMap, errorList) {{
$(""ul.validation-summary-errors"").html("""");
this.defaultShowErrors();
}}";
// etc...this is the standard jQuery.validate code.
return string.Format(scriptBlock, formId);
}
public static string ClientValidatedTextbox(this HtmlHelper htmlHelper, string propertyName, IDictionary<string, object> htmlAttributes, string validationType)
{
var cssClassBuilder = new StringBuilder();
cssClassBuilder.Append("text ");
if (htmlAttributes == null)
{
htmlAttributes = new Dictionary<string, object>();
}
else if(htmlAttributes.ContainsKey("class"))
{
cssClassBuilder.Append(htmlAttributes["class"]);
}
switch validationType
{
case "email":
cssClassBuilder.Append(" {rules: {email: true, messages: {email: 'A valid email is required.'}} } ");
break;
}
htmlAttributes["class"] = cssClassBuilder.ToString();
return htmlHelper.TextBox(propertyName, htmlAttributes);
}