自定义数据注释语法错误

Custom data annotation syntax error

我创建了一个自定义数据注释来通知用户输入了重复的 SKU。数据注释如下:

[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();

"Incorrect syntax near @SKU"有人可以帮忙吗?

你忘记在 where 子句后关闭 ),但实际上你的情况不需要 ():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;