c# - asp.net 不能将 Null 值赋给类型为 System.Int32 (不可为 null 的值类型)的成员。

查看:307
本文介绍了c# - asp.net 不能将 Null 值赋给类型为 System.Int32 (不可为 null 的值类型)的成员。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

添加保存产品时出现不能将 Null 值赋给类型为 System.Int32 (不可为 null 的值类型)的成员。错误,求大神指点,谢谢

#region 添加保存事件

    protected void BtnSave_Click(object sender, EventArgs e)
    {
        try
        {
            if (IsValid && Valid())
            {      
                var result = from p in fu.F_Products select p;
                F_Product pro = new F_Product();
                bool b = true; // true add

                if (!"0".Equals(ProductID) && !"Copy".Equals(GetAC))
                {
                    pro = result.Single(s => s.ID == Convert.ToInt32(ProductID));
                    b = false;
                }

                    pro.Clicks = Convert.ToInt32(Clicks.Text);
                    pro.ClsId = Convert.ToInt32(DDLCLs.SelectedValue);
                    pro.ClsId2 = Convert.ToInt32(DDLCLs2.SelectedValue);
                    pro.ClsId3 = Convert.ToInt32(DDLCLs3.SelectedValue);
                    pro.EnPgTitle = EnPgTitle.Text;
                    pro.EnPgKeyword = EnPgKeyword.Text;
                    pro.EnPgDescription = EnPgDescription.Text;
                    pro.PgDescription = PgDescription.Text;
                    pro.PgKeyword = PgKeyword.Text;
                    pro.PgTitle = PgTitle.Text;
                    pro.Price = Convert.ToDecimal( Price.Text);                 
                    pro.Title = Title1.Text;
                    pro.EnTitle = Title2.Text;
                    pro.Description = Explain.Value;
                    pro.EnDescription = EnExplain.Value;
                    pro.Pic = Picturea.Text;
                    pro.EnPic = Picture2.Text;
                    pro.Stock = Convert.ToInt32(string.IsNullOrEmpty(Stock.Text)?"0":Stock.Text);

                    pro.UpDateTime = DateTime.Now;

                    string Colors = string.Empty;
                    foreach (ListItem item in LBColor.Items) {
                        if (item.Selected) {
                            Colors += item.Value+" ";
                        }
                    }

                    pro.Colors = Colors.Trim().Replace(" ",",");

                    if (b)
                    {
                        pro.CreateTime = DateTime.Now;
                        pro.DisplayOrder = fu.F_Products.Max(m => m.DisplayOrder);

                        if (null == pro.DisplayOrder)
                            pro.DisplayOrder = 1;

                        pro.IsHot = false;

                        fu.F_Products.InsertOnSubmit(pro);
                    }
                    fu.SubmitChanges();

                    Script.AlertAndRedirect("保存成功!", "Product.aspx?AC=list");
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
    #endregion

解决方案

终于解决了

把代码

pro.DisplayOrder = fu.F_Products.Max(m => m.DisplayOrder);

                        if (null == pro.DisplayOrder)
                            pro.DisplayOrder = 1;

改成

try
                        {
                            pro.DisplayOrder = fu.F_Products.Max(m => m.DisplayOrder) + 1;
                        }
                        catch
                        {
                            pro.DisplayOrder = 1;
                        }

这篇关于c# - asp.net 不能将 Null 值赋给类型为 System.Int32 (不可为 null 的值类型)的成员。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆