Оператор '>' не может быть применен к операндам типа 'string' и 'int' с помощью Asp.net Mvc - PullRequest
1 голос
/ 24 октября 2019

Я создаю простую систему crud, используя asp.net mvc. когда я ввожу запись и нажимаю кнопку добавления, эта ошибка отображается.

В этой строке выдается ошибка: if (rec.id > 0)

(параметр) product rec

оператор '>' нельзя применить к операндам типа 'строка'and' int '**

Код, который я попробовал

контроллер продаж

 public ActionResult save(product rec)
    {
        bool status = false;
        if (ModelState.IsValid)
        {
            using (aspposEntities1 db = new aspposEntities1())
            {
                if (rec.id > 0) // this line i got the error
                {
                    var v = db.products.Where(a => a.id == rec.id).FirstOrDefault();
                    if (v != null)
                    {
                        v.proname = rec.proname;
                        v.cat_id = rec.cat_id;
                        v.brand_id = rec.brand_id;
                        v.qty = rec.qty;
                        v.price = rec.price;
                        db.Entry(v).State = EntityState.Modified;
                    }
                }
                else
                {
                    db.products.Add(rec);
                }

                db.SaveChanges();
                status = true;
            }
        }
        return new JsonResult { Data = new { status = status } };
    }

класс продукта product.cs

public partial class product
{
    public string id { get; set; }
    public string proname { get; set; }
    public Nullable<int> cat_id { get; set; }
    public Nullable<int> brand_id { get; set; }
    public Nullable<int> qty { get; set; }
    public Nullable<int> price { get; set; }
}

Ответы [ 3 ]

2 голосов
/ 24 октября 2019

rec.Id Тип: String.

Вы должны преобразовать rec.Id в int или long

1 голос
/ 24 октября 2019

Поскольку вы не можете изменить свойство id на int, вот один из способов проверить действительные идентификаторы.

if(int.TryParse(rec.id, out var id) && id > 0)

1 голос
/ 24 октября 2019

Компилятор точно говорит вам, в чем проблема. Ваше свойство id является строкой, и вы сравниваете ее с 0, целым числом.

Параметры:

  • if(Convert.ToInt32(rec.id) > 0 (но запомните нулевые проверки)
  • Измените id на int (предпочтительный вариант)

Дальнейшее чтение .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...