2017-01-10 3 views
2

Я создал пользовательскую аннотацию данных, чтобы информировать пользователя о том, что введен дублирующий код. Аннотацию данных выглядит следующим образом:Ошибка синтаксиса аннотации пользовательских данных

[Remote("doesSKUExist", "Products", HttpMethod = "POST", ErrorMessage = "SKU already exists. Please enter a different SKU.")] 
public string SKU { get; set; } 

В ProductsController я следующее:

[HttpPost] 
    public JsonResult doesSKUExist(string Sku) 
    { 
     string conStr = @"Data Source=cmsapirontech.database.windows.net;Initial Catalog=CMSDatabase;Integrated Security=False;User ID=dwight;Password=Fatboy99!;Connect Timeout=60;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"; 
     SqlConnection sqlconn = new SqlConnection(conStr); 

     SqlCommand does_SKU_exist = new SqlCommand("SELECT SKU FROM [Product] WHERE([SKU] = @SKU", sqlconn); 
     sqlconn.Open(); 
     does_SKU_exist.Parameters.Add("SKU", SqlDbType.VarChar).Value = Sku; 
     var sku = does_SKU_exist.ExecuteScalar(); 
     return Json(sku == null); 
    } 

В настоящее время я получаю сообщение об ошибке в строке:

var sku = does_SKU_exist.ExecuteScalar(); 

«Неправильный синтаксис около @SKU «Может ли кто-нибудь помочь с этим?

ответ

3

Вы забыли закрыть ) после ИНЕК, но на самом деле нет никакой необходимости ( и ) в вашем случае: инициализация SqlCommand должна быть примерно следующее:

SqlCommand does_SKU_exist = new SqlCommand("SELECT SKU FROM [Product] WHERE [SKU] = @SKU", sqlconn); 

Вы должны сделать небольшое изменение при добавлении параметра также, то есть:

does_SKU_exist.Parameters.Add("@SKU", SqlDbType.VarChar).Value = Sku; 
+0

Спасибо! Я весь день сражаюсь с этим штопором. Он работает сейчас! –

+0

@DwightMendoza: Рад это услышать, рад помочь вам –